Получить значение индекса из коллекции - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть коллекция строк: "Apple", "Mange", "Pineapple"

Я хочу получить индекс слова, имеющего самую длинную длину. Например, 2, что соответствует самому длинному слову, "Pineapple".

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Чтобы получить фрукт с самым длинным названием, сделайте это:

var fruits = new List<String> { "Apple", "Mange", "Pineapple" };
var longestName = (from fruit in fruits
                   orderby fruit.Length descending
                   select fruit).First();
var index = fruits.IndexOf(longestName);

И как лямбда, без особой причины:

var fruits = new List<String> { "Apple", "Mange", "Pineapple" };
var longestName = fruits.OrderByDescending(e => e.Length).First();
var index = fruits.IndexOf(longestName);
1 голос
/ 06 декабря 2011

Может работать и следующее:

var maxItem = fruits
    .Select((fruit, index) => new { Length = fruit.Length, Index = index })
    .Aggregate((max, next) => (next.Length > max.Length) ? next : max);
var maxIndex = maxItem.Index;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...