gpt4 book ai didi

c# - 如何使用 Linq 和 Entity Framework 获得不同的、不区分大小写的列表

转载 作者:太空狗 更新时间:2023-10-29 23:30:55 24 4
gpt4 key购买 nike

我需要从 Entity Framework 查询的结果中获取不区分大小写的列表。我有以下内容:

 var myList = myEF.GroupBy(e => new { e.Code, e.Description })
.Select(e => e.First())
.ToList();

这给了我一个不同的列表,但它区分大小写。我需要不区分大小写。

我想我应该能够做这样的事情:

var myList = myEF.GroupBy(e => new { e.Code, e.Description }, StringComparer.InvariantCultureIgnoreCase)
.Select(e => e.First())
.ToList();

但这似乎并不想与匿名对象一起工作。

添加 .ToLower.ToLowerInvariant 似乎也不起作用。也不使用 Distinct(StringComparer.InvariantCultureIgnoreCase) 而不是 GroupBy

似乎应该有一个简单的方法来做到这一点,但我没有找到它。

最佳答案

我试过你说的各种方法,都失败了。但是我得到了这个工作:

var distinct = list.Distinct(new CaseInsensitiveComparer());

public class CaseInsensitiveComparer : IEqualityComparer<A>
{
public bool Equals(A x, A y)
{
return x.Code.Equals(y.Code, StringComparison.OrdinalIgnoreCase) &&
x.Description.Equals(y.Description, StringComparison.OrdinalIgnoreCase);
}

public int GetHashCode(A obj)
{
return obj.Code.ToLowerInvariant().GetHashCode();
}
}

随时根据您的需求进行调整。

Fiddle

关于c# - 如何使用 Linq 和 Entity Framework 获得不同的、不区分大小写的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com