我想使用下面的示例來解釋我的問題。在列表中搜索行,其中一個字段與字符串數組中的任何值匹配
我有一個列表創建的,它具有像場 - StudEmail,名字,姓氏,年齡,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。
請確認我從數據表創建列表是正確的。
感謝您的快速回復。我試過這個:lst = lst.Where(c =>!EligModes.Contains(c.EligibilityMode))。ToList();但它顯示c.EligibilityMode下的語法錯誤紅線。我不知道爲什麼它不能識別列表中的列名。我已經將我的數據錶轉換爲列表:DataTable dt1 = new DataTable(); dt1 = ds.Tables [0]; 列表
@MittalPatel是'c。EligibilityMode'一個字符串? –
是的。列類型是字符串。我再次更新了我試過的問題。請看那裏。 –