gpt4 book ai didi

c# - 根据其中一项和自定义条件对列表进行排序

转载 作者:行者123 更新时间:2023-11-30 19:30:12 25 4
gpt4 key购买 nike

我有一个列表,其中包含一个字符串和另一个列表 - 示例代码如下:

List<Config> ConfigLists; 

Config 是一个包含 2 个成员的类:

  • 字符串名称
  • 列出二进制列表

Binary 是另一个类。

我想根据每个列表项中包含的“名称”对“ConfigLists”列表进行排序。

谁能指导一下?

此外,我想使用“名称”的子字符串进行排序,因为“名称”将包含“Week 07”、“Week 09”等值,其中我将用于比较的子字符串是字符串的数字部分(例如“07”、“09”等)

最佳答案

Linq 应该在这里提供帮助;

// using System.Linq;
ConfigLists = ConfigLists.OrderBy(x => x.Name).ToList();

...当然可以用来按子字符串排序...

// Skips "Week ";
// using System.Linq;
ConfigLists = ConfigLists.OrderBy(x => x.Name.Substring(5)).ToList();

如果您有更复杂的排序顺序或希望在排序时避免使用临时字符串,您可能希望使用 IComparer 为您进行排序;

class WeekComparer : IComparer<Config>
{
public int Compare(Config x, Config y)
{
return string.Compare(x.Name, 5, y.Name, 5, int.MaxValue);
}
}

// using System.Linq;
var weekComparer = new WeekComparer();
ConfigLists = ConfigLists.OrderBy(x => x, weekComparer).ToList();

如果您不喜欢 Linq 的语法,IComparer 也可以与“普通旧”排序一起使用。

var weekComparer = new WeekComparer();
ConfigLists.Sort(weekComparer);

关于c# - 根据其中一项和自定义条件对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653656/

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