gpt4 book ai didi

c# - List inside 其他列表性能

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

我有一个字符串列表:

List<String> names = new List<String> { "aa", "Bb", "cC", "DD" }

以及类别列表:

List<Category> categories = service.GetAllCategories();

其中 Category 是以下类:

public class Category {
public int Id { get; set; }
public string Name { get; set; }
}

我需要知道是否在类别中找到了所有名称(不区分大小写):

bool check = names.All(x => categories.Any(y => x.ToLower() == y.Name.ToLower()):
  1. 有没有比这个性能更好的方法?我不确定 All 里面的 Any 是否是最好的方法。

  2. 除了使用 ToLower 来不区分大小写之外,还有其他方法吗?

最佳答案

1) 是的,您可以使用 !Except + Any 因为它使用的是集合,所以效率更高。

bool check = !names.Except(categories.Select(c => c.Name), StringComparer.CurrentCultureIgnoreCase).Any();

2) 不要使用 ToLower 而是使用正确的 StringComparer 以不区分大小写的方式进行比较。

关于c# - List inside 其他列表性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513380/

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