我有一个List<List<string>> Full,建立在
for(...){
Full.Add(new List<string>());
Full[ListIndex].Add(string1);
Full[ListIndex].Add(string2);
Full[ListIndex].Add(string3);
...
}能读懂
string2 = Full[sublistX][element1];List<string> Strings包含string2的一些实例
我想要创建一个新的List<List<string> NewList只包含来自Full[sublistX][element1]的子列表,它等于List<string>Strings中的任何元素
例如,,
List<List<string>> Full = new List<List<string>>()
{
    new List<string>() { "11", "AA", "!!", },
    new List<string>() { "22", "BB", "@@", },
    new List<string>() { "33", "CC", "##", },
    new List<string>() { "44", "DD", "$$", },
};
List<string> Strings = new List<string>()
{
    "AA", "DD",
};我希望List<List<string> NewList包含:
sublist0: "11", "AA", "!!"; //match "AA"
sublist1: "44", "DD", "$$"; //match "DD"现在,我可能是用一种愚蠢的方式(硬编码的)来做这件事
List<List<string>> Full;
List<string> Strings;
List<List<string>> NewList;
for (int i = 0; i < Full.Count; i++)
{
    if (Strings.Contains(Full[i][4]))
    {
        NewList.Add(new List<string>());
        NewList[ListIndex].Add(Full[i][0]);
        NewList[ListIndex].Add(Full[i][1]);
        NewList[ListIndex].Add(Full[i][2]);
        NewList[ListIndex].Add(Full[i][3]);
        NewList[ListIndex].Add(Full[i][4]);
        NewList[ListIndex].Add(Full[i][5]);
        NewList[ListIndex].Add(Full[i][6]);
        NewList[ListIndex].Add(Full[i][7]);
        NewList[ListIndex].Add(Full[i][8]);
        NewList[ListIndex].Add(Full[i][9]);
        ListIndex++;
    }
}我的问题是:有更好的方法吗?
我认为有两点需要优化:
for()遍历整个列表"Full“,特别是当"Full”包含大量子列表并且"Strings“只有很少的元素时。NewList[ListIndex].Add从0硬编码为9。有方法获取子列表元素的计数吗?这样我就可以使用for(sublist elements count)添加NewList。https://stackoverflow.com/questions/74515399
复制相似问题