C# 项目中经常遇到这样的情况:选定的项与原DataTable中的数据进行对比,将数据变动部分利用Adapter写入数据库。
对于同一类型的而言很容易实现,而对于不同类型而言则看似复杂,实则也很简单
以下是取交集代码:
public partial class Program
{
static void Main(string[] args)
{
List<Class> list = new List<Class>();
list.Add(new Class() { Id = 1, Caption = "a" });
list.Add(new Class() { Id = 2, Caption = "b" });
list.Add(new Class() { Id = 3, Caption = "c" });
list.Add(new Class() { Id = 5, Caption = "d" });
list.Add(new Class() { Id = 6, Caption = "e" });
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Text", typeof(string));
dt.Rows.Add(1, "第一行");
dt.Rows.Add(2, "第二行");
dt.Rows.Add(3, "第三行");
dt.Rows.Add(4, "第四行");
var row = dt.AsEnumerable().Where(x =>
{
return (from a in list where a.Id == x.Field<int>("Id") select a).Any();
});
row.ToList().ForEach(x => { Console.WriteLine(x.Field<string>("Text")); });
Console.ReadKey();
}
}
public class Class
{
public Class() { }
public int Id { get; set; } = 0;
public string Caption { get; set; } = "";
}
运行结果
return !(from a in list where a.Id == x.Field<int>("Id") select a).Any();
在C#项目中,常常需要处理DataTable与List之间的数据对比,例如找出它们的交集和差集。这篇博客分享了如何使用Lambda表达式来实现不同类型的交集和差集计算,并提供了具体的代码示例,帮助开发者轻松处理数据更新操作。
2172

被折叠的 条评论
为什么被折叠?



