McA*_*hey 3 c# collections list
我有一个标准List<Uri>定义,包含一个简短的项目列表.我想使用foreach()迭代列表,但是想要将包含特定字符串值的项"置于顶部"以便首先处理它们.OrderBy()是否可以实现这一点,更好的是,它可以在一行中实现吗?谢谢!
你可以这样做:
foreach(var uri in uriList.OrderByDescending(uri => uri.ToString().Contains("foo"))
{
// Use uri
Run Code Online (Sandbox Code Playgroud)
是的。您可以使用OrderByDescending()返回布尔值的订单 - 例如:
var results = items.OrderByDescending( x => x.Name=="Herbert").ToList();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,订单将返回true“Herbert”和false所有其他值。所有true值都将在所有false值之后排序- 我们通过使用颠倒顺序OrderByDescending()并获得所需的结果。
适应您的Uri列表并且Contains()还返回一个布尔值,这意味着:
foreach(var uri in uriList.OrderByDescending(x => x.ToString().Contains(someString))
{
//..
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1844 次 |
| 最近记录: |