如何在不引用特定键的情况下在字典中找到最长的数组

时间:2015-07-14 02:53:37

标签: c# dictionary

我有一本字典:

public static void Main(string[] args)
{
    Dictionary<string, int[]> ret = new Dictionary<string, int[]>();
    int[] a = {1,0,3,4,0};
    int[] b = { 3, 0, 9, 10, 0};
    int[] c = {2,3,3,5,0};
    ret.Add("Jack", a);
    ret.Add("Jane", b);
    ret.Add("James", c);

    int total = ret["Jack"].Length;

    Console.WriteLine(total);
}

找到我使用的最长的长度:

int total = ret["Jack"].Length;

有没有办法在不引用特定密钥的情况下找到最长的长度?

2 个答案:

答案 0 :(得分:3)

你必须遍历字典中的每个键/值对,检查值的长度,并记住最大值。

幸运的是,有一个名为Max的LINQ扩展程序将为您完成:

int total = ret.Max(t => t.Value.Length);

答案 1 :(得分:0)

int  longestVal = -1;

if(ret.Any())
{
    longestVal = ret.Values.Max(x => x.Length);
}