gpt4 book ai didi

c# - 用于验证列表的 lambda 表达式是否正确排序

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

我想编写一个 lambda 表达式来验证列表的排序是否正确。我有一个列表,其中一个人有一个 Name 属性,例如:

IList<Person> people = new List<Person>();
people.Add(new Person(){ Name = "Alan"});
people.Add(new Person(){ Name = "Bob"});
people.Add(new Person(){ Name = "Chris"});

我正在尝试测试该列表是否按 Name 属性 ASC 排序。所以我在寻找类似的东西

Assert.That(people.All(....), "list of person not ordered correctly");

我如何编写 lambda 来检查列表中每个人的名字是否小于列表中下一个人的名字?

最佳答案

这是 Jared 解决方案的替代方案 - 它几乎相同,但使用 foreach 循环和 bool 变量来检查这是否是第一次迭代。我通常发现这比手动迭代更容易:

public static bool IsOrdered<T>(this IEnumerable<T> source)
{
var comparer = Comparer<T>.Default;
T previous = default(T);
bool first = true;

foreach (T element in source)
{
if (!first && comparer.Compare(previous, element) > 0)
{
return false;
}
first = false;
previous = element;
}
return true;
}

关于c# - 用于验证列表的 lambda 表达式是否正确排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756939/

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