List.OrderBy() 基于 Contains() 排序顺序?
我定义了一个标准 List
,其中包含一个简短的项目列表。我想使用 foreach() 迭代列表,但希望将那些包含特定字符串值的项目“置于顶部”以便首先处理它们。这可以通过 OrderBy() 实现吗?更好的是,是否可以在一行中实现? 谢谢!
I have a standard List<Uri>
defined that contains a short list of items. I'd like to iterate over the list using a foreach() but would like to 'bring to the top' those items that contain a specific string value in order to process them first. Is this possible with the OrderBy() and, better yet, is it possible in a single line?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以这样做:
You can do that:
是的。您可以使用
OrderByDescending()
使用返回布尔值的订单 - 例如:在本例中,订单将为“Herbert”返回
true
,而对于“Herbert”则返回false
> 对于所有其他值。所有true
值将在所有false
值之后排序 - 我们通过使用OrderByDescending()
反转顺序并得到期望的结果。适应您的
Uri
列表和Contains()
,它也返回一个布尔值,这意味着:Yes. you can use
OrderByDescending()
using an order that returns a boolean - example:In this case the order would return
true
for "Herbert" andfalse
for all other values. Alltrue
values will be ordered after allfalse
values - we reverse the order by usingOrderByDescending()
and have the desired outcome.Adapted to your
Uri
list andContains()
which also returns a boolean this would mean:其他人使用 OrderByDescending,这将起作用,但您要求使用 OrderBy,所以这里:
The others used OrderByDescending, which will work, but you asked for using OrderBy, so here: