C# 获取数组内部数组的最大计数?

C# 获取数组内部数组的最大计数?,c#,arrays,C#,Arrays,我在数组中有一个数组,我想得到该数组的最高计数 List<int> badnumber = new List<int>() { 5,4,2, 15 }; int lower = 1; int upper = 10; int count = 0; List<int> goodnumber = new List<int>(); List<List<int>> myList = new List<List<int&

我在数组中有一个数组,我想得到该数组的最高计数

List<int> badnumber = new List<int>() { 5,4,2, 15 };
int lower = 1;
int upper = 10;

int count = 0;

List<int> goodnumber = new List<int>();
List<List<int>> myList = new List<List<int>>();

for (int i = lower; i <= upper; i++)
{
    if (!badnumber.Contains(i))
    {
        if (!goodnumber.Contains(i))
            goodnumber.Add(i);
    }
    else
    {
        myList.Add(goodnumber);
        goodnumber = new List<int>();
    }

    if (i == upper) {
        myList.Add(goodnumber);
    }
}
我想得到最高序列的计数,即数组4。并返回它的计数,即5

我怎样才能得到它呢?

试试下面的方法:

            List<List<int>> myList = new List<List<int>>() {
                new List<int> { 1},
                new List<int> { 3},
                new List<int> { 0},
                new List<int> { 6,7,8,9,10}
            };

            int results = myList.Max(x => x.Count);
List myList=new List(){
新列表{1},
新名单{3},
新列表{0},
新名单{6,7,8,9,10}
};
int results=myList.Max(x=>x.Count);
使用以下示例

    var maxCount = myList.Max(l => l.Count);

基本上,您的任务可以归结为以下几点:

如何获得列表中的最大数字

为了实现这一点,您必须迭代该(外部)列表,获取要比较的每个元素成员(在您的示例中为
计数
),并检查其是否大于当前的
最大值

int max = 0;
foreach(var l in myList)
{
    if(l.Count > max)
        max = l.Count;
}

或者更简单地使用linq,请参见jdweng。

尝试在lambda下面使用count获取索引位置:

int index = 0;
var result = myList.Select(x => new { indexPos = ++index, x.Count }).OrderByDescending(x => x.Count).First();

首先::数组不是列表。离开那个助理,你想干什么?你肯定知道如何计算列表的长度,不是吗?只需列出所有列表,并获得最重要的列表。这与在一个集合中选择最大数量的任务完全相同。
MaxBy
MoreLINQ可能比
OrderByDescending
First
更可取。我同意你的看法。我可以使用MoreLINQ库得到同样的结果。下面是给出相同结果的示例查询:var result2=myList.Select(x=>new{indexPos=++index,x.Count}).MaxBy(x=>x.Count);或
foreach(…)max=Math.max(max,l.Count)int index = 0;
var result = myList.Select(x => new { indexPos = ++index, x.Count }).OrderByDescending(x => x.Count).First();