gpt4 book ai didi

c# - 如何获得大写和小写的不同值?

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:05 26 4
gpt4 key购买 nike

我有这个功能,我想在#Data#中获得不同的值。但我的问题是,如果有两个具有相同字符的值,但一个是 Upper,一个是 Lower(即喜剧和喜剧),它在我的数据中仍然同时具有 Comedy 和 comedy 的值(value)。所以当我绑定(bind)到数据时......它显示了两者。

我的职能是:

public void LoadBookGenre(Book abc)
{
var loadbook = from Book s in BookDB.Books where s.Genre == abc.Genre select s;
BookAttribute.Clear();
foreach (Book m in loadbook) BookAttribute.Add(m);
List<Book> distinct = BookAttribute.GroupBy(a => a.Genre).Select(g => g.First()).ToList();
Data.Clear();
foreach (Book s in distinct) Data.Add(s);
}

最佳答案

您可以使用允许您指定不区分大小写的比较器的 GroupBy 重载:

List<Book> distinct = 
BookAttribute.GroupBy(a => a.Genre, StringComparer.OrdinalIgnoreCase)
.Select(g => g.First())
.ToList();

根据您的情况,您还可以使用 Distinct:

List<string> distinctGenres = 
BookAttribute.Select(a => a.Genre)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();

编辑:您还需要更改初始查询中的相等性检查:

var loadbook = from Book s in BookDB.Books 
where s.Genre.Equals(abc.Genre, StringComparison.OrdinalIgnoreCase)
select s;

关于c# - 如何获得大写和小写的不同值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20837488/

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