小编And*_*ard的帖子

Linq IEqualityComparer<string> 忽略大小写

我正在对元素列表进行排序:

var matchEle = listOfElements.Where(e => e.Properties().Any(p => p.Name.Contains("Key", Asking for IEqualityComparer))).First();
Run Code Online (Sandbox Code Playgroud)

我习惯于直接使用 StringComparer、OrdinalIgnoreCase 或 CurrentCultureIgnoreCase,但是在这种情况下调用 Contains() 时,它会要求使用 IEqualityComparer。我想是因为数据结构/级别。我看到了如何设置 IEqualityComparer 的示例,例如

strEqualityComparer = new IEqualityComparer();
Run Code Online (Sandbox Code Playgroud)

并为 strEqualityComparer 定义类,但我不确定除此之外。有人可以帮助我让 linq 语句处理忽略案例吗?

更新:我很清楚这是数据结构的示例:

listOfElements = [element1, element2, etc..]
element1.Properties = ["Prop1", "Key1", "Prop2", "Key2", etc.]
Run Code Online (Sandbox Code Playgroud)

如果其任何属性具有包含关键字的值,我需要提取通过过滤器的元素,在本例中为“Key”,因此它不能是 .Equals 或 IndexOf。

linq iequalitycomparer stringcomparer

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

iequalitycomparer ×1

linq ×1

stringcomparer ×1