我有一个这样的字符串列表:
List<string> excelList = new List<string>();
excelList.Add("ZArA"); excelList.Add("CalviN"); excelList.Add("BaD ZAra");
我从中创建了一个Hashset
,如下所示:
var hashet = new HashSet<string>(excelList,StringComparer.OrdinalIgnoreCase);
然后我有一个这样的class
objects
列表:
public class MyDbObjects
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int ID { get; set; }
}
List<MyDbObjects> dbObjectses = new List<MyDbObjects>();
// call .add here to add some actual objects to it.
好的,现在我想确保 excelList 中的所有字符串值存在于我的类对象列表中,dbObjectses
为名字或姓氏,并且不关心区分大小写。我下面的代码有效,但它不处理区分大小写。我如何将其添加到其中?
var allofThemExist = dbObjectses.All(x => hashet.Contains(x.FirstName) || hashet.Contains(x.LastName));
这应该可以做到:
var hasAll = !excelList.Except(
dbObjectses.Select(x => x.FirstName).Concat(
dbObjectses.Select(x => x.LastName)),
StringComparer.OrdinalIgnoreCase).Any();
Except
内部使用哈希表,因此应该具有良好的性能。
instrad of hasset,请使用 excelList,
var allofThemExist = dbObjectses.All(x => excelList.Contains(x.FirstName) || excelList.Contains(x.LastName));