简体   繁体   English

Linq Orderby用于选择中的复杂表达

[英]Linq orderby for complex expression in select

guys! 伙计们! I've got the code like following: 我有如下代码:

String input_string = "Good bye world!";
from c in input_string.Split(new char[]{' '})                   
    select int.Parse(c);

and I would like to order resulting query by int.Parse(c) like 我想通过int.Parse(c)来排序结果查询

String input_string = "Good bye world!";
from c in input_string.Split(new char[]{' '})
    orderby int.Parse(c)                    
    select int.Parse(c);

but without calculating int.Parse(c); 但不计算int.Parse(c); again in orderby statement. 再次在orderby语句中。

Any ideas? 有任何想法吗?

You can use let : 您可以使用let

var input = "3 2 1";

var query = from c in input.Split(' ')
            let x = int.Parse(c)
            orderby x
            select x;

foreach (var item in query)
{
    Console.WriteLine(item);
}

Output: 输出:

1
2
3
string input_string = "111 222 333";
var result = input_string.Split(null)
    .Select(int.Parse)
    .OrderBy(arg => arg)
    .ToList();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM