Linq orderby for select中的复杂表达式

时间:2011-06-25 21:49:37

标签: c# linq

家伙! 我有以下代码:

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

我希望通过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);

但不计算int.Parse(c);再次按顺序发表声明。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您可以使用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);
}

输出:

1
2
3

答案 1 :(得分:1)

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