首页 新闻 搜索 专区 学院

C#listbox问题

0
悬赏园豆:60 [已解决问题] 解决于 2021-12-07 13:19

相当于 俩个集合比对 重新生成第三个集合 可有偿 老板们

代码:
DataTable dt1 = new DataTable("Ta");
dt1.Columns.Add("ID", typeof(int));
dt1.Columns.Add("Name", typeof(string));
dt1.Rows.Add(1, "小明");
dt1.Rows.Add(2, "小红");
dt1.Rows.Add(3, "小黑");

		DataTable dt2 = new DataTable("TB");
		dt2.Columns.Add("ID", typeof(int));
		dt2.Columns.Add("Name", typeof(string));
		dt2.Columns.Add("Age", typeof(string));
		dt2.Rows.Add(1, "小明", "5");
		dt2.Rows.Add(2, "小2", "5");
		dt2.Rows.Add(3, "小黑", "5");

		//listA.Join(listB, t => t.Id, g => g.Id, (a, b) => new { a.Id, Bid = b.Id,b.N }).Where(t=>t.Id == t.Bid)



		var dalist = from n in dt1.AsEnumerable()
					 from m in dt2.AsEnumerable()
					 where m.Field<string>("Name") == n.Field<string>("Name")
					 select new
					 {

						 ID = n["ID"].ToString(),
						 Name = n["Name"].ToString(),
						 Age = m["Age"].ToString()
					 };

目前只能查到 1,小明,5 3,小黑,5
我想查到1,小明,5 2,小红 3,小黑,5

91One的主页 91One | 初学一级 | 园豆:12
提问于:2021-12-07 09:37
< >
分享
最佳答案
0

你看这样行不行?

   public List<string> list1 = new List<string>();
    public List<string> list2 = new List<string>();
    public List<string> list3 = new List<string>();
    public void Test()
    {
        list1.AddRange(new string[] { "耳鼻喉科", "妇科", "彩超室", "骨密度", "一般检查", "心电图室" });
        list2.AddRange(new string[] { "耳鼻喉科", "妇科", "彩超室", });
        for (int i = 0; i < list1.Count; i++)
        {
            if (list2.Contains(list1[i]))
            {
                list3.Add("🟦 " + list1[i]);
            }
            else
            {
                list3.Add("  " + list1[i]);
            }
        }
        listBox1.Items.AddRange(list3.ToArray()) ;
    }
收获园豆:60
中华鲟3670 | 小虾三级 |园豆:645 | 2021-12-07 12:58

嗯嗯,已经解决了,谢谢

91One | 园豆:12 (初学一级) | 2021-12-07 13:18
其他回答(1)
0

你是要实现合并两个集合,排除重复的吗,你想要查的2,小红 3,问题是没有小红对应的age数据啊

WmW | 园豆:257 (菜鸟二级) | 2021-12-07 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册