2011-12-06 111 views
0

索引值我有一个字符串的集合:"Apple", "Mange", "Pineapple"获取从集合

我想获得具有最长的长度字的索引。例如,2对应于最长的单词"Pineapple"

回答

3

为了获得与名称最长的水果,这样做:

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); 

而作为一个lambda,无特殊原因:

var fruits = new List<String> { "Apple", "Mange", "Pineapple" }; 
var longestName = fruits.OrderByDescending(e => e.Length).First(); 
var index = fruits.IndexOf(longestName); 
+0

Lamda表达式 –

+0

为什么它需要是lambda? – Yuck

1

下可以工作了:

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; 
+0

+1虽然有点棘手阅读恕我直言,我希望你不介意我的编辑摆脱这些滚动条。 – Yuck

+0

@Yuck同意(我的奇妙滚动条有什么问题;)) –