编辑嵌套List中的元素

时间:2016-08-11 09:32:56

标签: c# list nested-lists

我有一个嵌套的列表元素。我需要更改该列表中的特定元素。

public List<List<string>> index = new List<List<string>>();

从该列表中我需要更改该值。搜索其中的特定单词,如果有,我需要获取索引,然后更改该值。

2 个答案:

答案 0 :(得分:2)

迭代主列表,然后搜索你要改变的词的索引,如果找到它,改变它并停止迭代。

List<List<string>> index = new List<List<string>>();
foreach (List<string> list in index)
{
    int i = list.IndexOf("word to search");
    if (i >= 0) {
        list[i] = "new word";
        break;
    }
}

答案 1 :(得分:1)

或者,如果您打算使用Linq,可以使用selector that also gets the index of the source element

    static bool SearchAndReplace (List<string> strings, string valueToSearch, string newValue)
    {
        var found = strings.Select ((s,i)=> new{index=i, val=s}).FirstOrDefault(x=>x.val==valueToSearch);
        if (found != null)
        {
            strings [found.index] = newValue;
            return true;
        }
        return false;
    }

    static bool SearchAndReplace (List<List<string>> stringsList, string valueToSearch, string newValue)
    {
        foreach (var strings in stringsList)
        {
            if (SearchAndReplace(strings, valueToSearch, newValue))
                return true;
        }
        return false;

    }