У меня
string[] pkgratio= "1:2:6".Split(':');
var items = pkgratio.OrderByDescending(x => x);
Я хочу выбрать среднее значение и придумать это. Правильно ли это выбрать второе значение в IEnumberable?
pkgratio.Skip(1).Take(1).First();
У меня
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
:
// same idea, zero index applies here too
var elem = result.ElementAt(1);
Вот ваш образец как IEnumerable<string>
. Обратите внимание, что вызов AsEnumerable()
заключается в том, чтобы подчеркнуть, что образец работает против IEnumerable<string>
. Фактически вы можете использовать ElementAt
для результата массива string[]
из Split
, но более эффективно использовать показанный ранее индекс.
var pkgratio = "1:2:6".Split(':').AsEnumerable();
Console.WriteLine(pkgratio.ElementAt(1));
Я не думаю, что вам нужно .Take(1)
.
pkgratio.Skip(1).First()
pkgratio.ElementAt(1);
для вашего сценария.
Однако ваш метод применим только в том случае, если вы использовали некоторые данные, которые внедрили IQueryable
, или вам нужно было взять ряд элементов, начиная с определенного индекса, например:
pkgratio.Skip(5).Take(10);
Ну, Take(1)
не является строго необходимым, если вы собираетесь просто First()
, поэтому я могу пойти с
pkgratio.Skip(1).First();
Однако, First()
генерирует исключение, если нет значения, поэтому вы можете попробовать FirstOrDefault()
, а затем проверить значение null.
Но в этом случае у вас есть массив, так что вы можете довольно счастливо получить второй элемент, используя:
pkgratio[1]