相当于 俩个集合比对 重新生成第三个集合 可有偿 老板们
代码:
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
你看这样行不行?
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()) ;
}
嗯嗯,已经解决了,谢谢
你是要实现合并两个集合,排除重复的吗,你想要查的2,小红 3,问题是没有小红对应的age数据啊