如何遍历多维列表

时间:2016-01-19 12:48:11

标签: c# list

必须是一个简单的问题,我再次接近神经崩溃,因为我找不到它:

我有一个多重列表,我定义为一个自己的类(Id,标题,描述,开始,长度,URL),我填写了一个函数

hyperlist.Add(
    new ListElement
    {
        Id = n,
        Title = title,
        Desc = desc,
        Start = OffsetTotal,
        Length = TagLength,
        URL = LinkURL
    });

我将它传递给另一个函数,我必须遍历它并将列表的每个条目与参数进行比较。

void BuildGList(List<ListElement> LinkList)
{
    int startIndex = 5;
    foreach (int Id in LinkList)
    {
        if(startIndex < Start)
        {
            ....
        }
    }
}

我没有看到如何处理每一个专栏并使用Google搜索我的印象是没有人使用列表来执行我想要的操作。

-update-
我被要求澄清我的问题。幸运的是,回答它的人很清楚:我不知道如何引用List中的特殊参数。现在我知道你可以用item.parameter来做到这一点。我非常感谢Stackoverflow的帮助,但有时候我会觉得你们很多有经验的编码员对初学者的问题没有同情心和理解力。面孔和谷歌通过丛林的帖子所需的努力。特别是如果你是初学者,因此有时会错过正确的关键词。在这一个我忙了一个小时,接近故障,因为我知道我抓得非常简单。如果您知道它,那么它总是很容易。干杯

3 个答案:

答案 0 :(得分:2)

你可以像这样使用foreach:

        foreach (ListElement item in LinkList)
        {
            if (item.Length < startIndex)
            {
                //Do something
            }
        }

答案 1 :(得分:1)

您可以使用Linq过滤列表,例如返回IEnumerable作为你可以做的子集:

private IEnumerable<ListElement> BuildGList(List<ListElement> linkList)
{
    int startIndex = 5;
    return linkList.Where(element => startIndex < element.Start);
}

答案 2 :(得分:1)

如果要使用列表索引,可以将forewhile与foreach一起使用:

foreach(var item in LinkList.TakeWhile((item, index) => index < startIndex))
{
    //enter your code here
}

另外,如果要与列表中的元素值进行比较,可以使用foreach的位置:

foreach(var item in LinkList.Where(item => item.Start < startIndex))
{
    //enter your code here
}