Linq order语言 - 确保满足特定条件的对象总是优先



我有一个对象集合,假设它们是字符串:

string[] strings = new[]{"ABC", "AAA", "ADA", "DDB", "OEO"};

我需要对这些执行处理,因此:

foreach(string s in strings)
{
    //do some stuff here
}

,但我必须始终确保在本例中对这些的处理首先使用"ABC"字符串。

请注意,尽管列表中可能有100个字符串,但它们总是唯一的,因此永远不会有两个"ABC"条目。

我已经尝试了使用OrderBy()扩展的各种排列,到目前为止还没有成功。

任何帮助都非常感谢。


在Daniel评论后编辑:

我真是个白痴。我所做的工作很好,除了当我需要orderderby降序()时我使用了orderderby。

foreach(string s in strings.OrderByDescending(s => s.Contains("ABC")))
{
    //do things
}

这正是我想要的。

抱歉浪费了一个线程。如果有任何改进,我将很高兴听到。

尝试:

strings.OrderBy (o => o = ="ABC").ThenBy (o => o);

这将按特殊字符串排序,然后按字母顺序排序。

最新更新