【发布时间】:2021-10-13 08:52:04
【问题描述】:
起初,我将一些 DataRows 放入 Dictionary 中。我做了一个例子来展示它是如何制作的,以及如何使用数据表进行相同的 linq 查询。
我想通过示例搜索具有UTI_SURNAME 值以"A" 开头且配置文件代码为2 的记录列表。
使用数据表,我将执行以下代码:
DataTable dt = new DataTable();
dt.Columns.Add("UTI_ICODE" , typeof(int));
dt.Columns.Add("UTI_NAME", typeof(string));
dt.Columns.Add("UTI_SURNAME", typeof(string));
dt.Columns.Add("PROFIL_ICODE", typeof(int));
dt.Rows.Add(1, "Name Arnaud", "Arnaud", 1);
dt.Rows.Add(2, "Name Armand", "Armand", 2);
dt.Rows.Add(3, "Name Armelle", "Armelle", 2);
dt.Rows.Add(4, "Name Basile", "Basile", 1);
dt.Rows.Add(5, "Name Bernard", "Bernard", 2);
List<Dictionary<string, object>> lstUTI = dt.AsEnumerable().Select(
row => dt.Columns.Cast<DataColumn>().ToDictionary(
column => column.ColumnName,
column => row[column]
)).ToList();
dt.AsEnumerable().Where(x => x.Field<string>("UTI_SURNAME").StartsWith("A") && x.Field<int>("PROFIL_ICODE") == 2).ToList();
现在,我想以这种方式查询与列表lstUTI 具有相同的结果:
lstUTI.Where(...).ToList();
我如何使用 LINQ 做到这一点?
【问题讨论】:
-
想要检查存在还是想要获取那些字典?
-
我修改了我的问题以便更好地解释。
标签: c# linq dictionary