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

C# 如何在不引用特定键的情况下查找字典中最长的数组,c#,dictionary,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.A

我有一本字典:

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

有没有一种方法可以在不引用特定键的情况下找到最长的长度?

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

幸运的是,有一个名为
Max
的LINQ扩展将为您提供:

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

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

幸运的是,有一个名为
Max
的LINQ扩展将为您提供:

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

inttotal=ret.Max(t=>t.Value.Length)
dic.Values.Max(x=>x.Length)
还可以直接调用
inttotal=ret.Max(t=>t.Value.Length)
dic.Values.Max(x=>x.Length)
还可以调用
directlyNote:Max对空序列(或本例中的字典)抛出异常。注意:Max对空序列(或本例中的字典)抛出异常。这是答案吗?还是怎样它有帮助吗?请详细说明。是的,这显然是一个答案!问题是找到最长的长度。在我的回答中,这是“最长的时间”,请花一些时间解释一下这段代码是如何工作的,它是做什么的,这个问题的作者问题的来源是什么。答案不应该只包含代码,这是低质量的答案。这是答案吗?还是怎样它有帮助吗?请详细说明。是的,这显然是一个答案!问题是找到最长的长度。在我的回答中,这是“最长的时间”,请花一些时间解释一下这段代码是如何工作的,它是做什么的,这个问题的作者问题的来源是什么。答案不应该只包含代码,这是低质量的答案。
int  longestVal = -1;

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