我想用下面的例子来解释我的问题。
我创建了一个列表,其中包含诸如 StudEmail、FirstName、LastName、Age、EligibilityMode 之类的字段
现在,我有一个如下的字符串数组列表来验证所有允许值的 EligibilityMode 列。
List<string> EligModes = new List<string> { "WithCertificate", "With Certificate", "WithoutCertificate","Without Certificate" };
如何从我的主列表中获取行列表,其中 EligibilityMode 在 EligModes 字符串数组列表中没有匹配的值。
我尝试使用 Contains()、existvalue() 和 Any() 执行此操作,但找不到解决方案。
MainList.Where(c => (c.EligibilityMode.existvalue(EligModes))).ToList();
对此有什么帮助吗?
编辑:
我在下面尝试过:
DataTable dt1 = new DataTable();
dt1 = ds.Tables[0];
List<object> lst = dt1.AsEnumerable().ToList<object>();
lst = lst.Where(c => !EligModes.Contains(c.EligibilityMode)).ToList();
但它没有识别 c.EligibilityMode 中的列。
另外,我试过,
DataTable dt1 = new DataTable();
dt1 = ds.Tables[0];
List<object> lst = dt1.AsEnumerable().ToList<object>();
result = from m in lst
where !EligModes.Any(val => lst.EligibilityMode.Contains(val))
select m;
这里的 lst.EligibilityMode 也有同样的问题。
请确认我从数据表创建列表是正确的。