我有
string[] pkgratio= "1:2:6".Split(':');

var items = pkgratio.OrderByDescending(x => x);

我想选择中间值,并提出了这个建议。这是在IEnumberable中选择第二个值的正确方法吗?
pkgratio.Skip(1).Take(1).First();

最佳答案

尽管您的工作正常,但最直接的方法是使用数组的索引并引用第二项(在索引1处,因为第一个元素的索引从零开始):pkgratio[1]

Console.WriteLine(pkgratio[1]);

一个更完整的示例:
string[] pkgratio = "1:2:6".Split(':');

for (int i = 0; i < pkgratio.Length; i++)
    Console.WriteLine(pkgratio[i]);

使用IEnumerable<T>,您可以使用它,或者您可以使用 ElementAt method直接获取元素:
// same idea, zero index applies here too
var elem = result.ElementAt(1);

这是作为IEnumerable<string>的示例。请注意,AsEnumerable()调用是为了强调示例针对IEnumerable<string>的工作。实际上,您可以针对ElementAtstring[]数组结果使用Split,但是使用前面显示的索引器会更有效。
var pkgratio = "1:2:6".Split(':').AsEnumerable();
Console.WriteLine(pkgratio.ElementAt(1));

09-28 13:01