首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >List<List<string>>和List<string> - C#之间的通用提取

List<List<string>>和List<string> - C#之间的通用提取
EN

Stack Overflow用户
提问于 2022-11-21 07:18:01
回答 4查看 75关注 0票数 1

我有一个List<List<string>> Full,建立在

代码语言:javascript
运行
复制
for(...){
Full.Add(new List<string>());
Full[ListIndex].Add(string1);
Full[ListIndex].Add(string2);
Full[ListIndex].Add(string3);
...
}

能读懂

代码语言:javascript
运行
复制
string2 = Full[sublistX][element1];

List<string> Strings包含string2的一些实例

我想要创建一个新的List<List<string> NewList只包含来自Full[sublistX][element1]的子列表,它等于List<string>Strings中的任何元素

例如,

代码语言:javascript
运行
复制
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包含:

代码语言:javascript
运行
复制
sublist0: "11", "AA", "!!"; //match "AA"
sublist1: "44", "DD", "$$"; //match "DD"

现在,我可能是用一种愚蠢的方式(硬编码的)来做这件事

代码语言:javascript
运行
复制
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++;
    }
}

我的问题是:有更好的方法吗?

我认为有两点需要优化:

  1. 避免使用for()遍历整个列表"Full“,特别是当"Full”包含大量子列表并且"Strings“只有很少的元素时。
  2. 从代码中可以看到,我现在在每个子列表中都有10个元素,将来可能会增加/减少,但是我将NewList[ListIndex].Add从0硬编码为9。有方法获取子列表元素的计数吗?这样我就可以使用for(sublist elements count)添加NewList。
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74515399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档