为了账号安全,请及时绑定邮箱和手机立即绑定

通过增加两个单独的列表来创建一个新列表

通过增加两个单独的列表来创建一个新列表

C#
慕少森 2023-07-09 10:23:28
我正在尝试从两个单独的列表创建一个新列表,如下所示:List 1 (sCat) = MD0, MD1, MD3, MD4List 2 (sLev) = 01, 02, 03, ROutput-->MD0-01MD0-02MD0-03MD0-RMD1-01MD1-02MD1-03MD1-RMD3-01MD3-02MD3-03MD3-Retc...我想知道是否有一个函数可以产生上述结果。最终,我希望用户提供列表 2,并将该信息添加到列表 1 中,并存储为我稍后可以调用的新列表。enter code hereusing System;using System.Collections.Generic;using System.Linq;class Program{    static void Main(string[] args)    {        List<string> sCat = new List<string>();        // add Categories for the Sheets        sCat.Add("MD0");        sCat.Add("MD1");        sCat.Add("MD3");        List<string> sLev = new List<string>();        // add Levels for the Project        sLev.Add("01");        sLev.Add("02");        sLev.Add("03");        sLev.Add("R");        for (int i = 0; i < sCat.Count; i++)        {            // I am getting stuck here.            // I don't know how to take one item from the sCat list and             // add it to the sLev List incrementally.             Console.WriteLine(sCat[i],i);        }        Console.ReadLine();    }}
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

将从第一个集合中选择的所有元素的值与另一个集合中包含的元素组合起来:


var combined = sCat.SelectMany(s => sLev.Select(s1 => $"{s}-{s1}")).ToList();

这就像在嵌套for/foreach循环中迭代两个集合,将每个组合元素添加到新的List<string>:


List<string> combined = new List<string>();


foreach (var s1 in sCat)

foreach (var s2 in sLev) {

        combined.Add(s1 + "-" + s2);

}


查看完整回答
反对 回复 2023-07-09
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以将for循环替换为以下内容:


foreach(var sCatValue in sCat)

{

    foreach(var sLevValue in sLev)

    {

        Console.WriteLine($"{sCatValue}-{sLevValue}");

    }

}


查看完整回答
反对 回复 2023-07-09
?
桃花长相依

TA贡献1860条经验 获得超8个赞

  private static void Main()

    {

        List<string> sCat = new List<string>();

        // add Categories for the Sheets

        sCat.Add("MD0");

        sCat.Add("MD1");

        sCat.Add("MD3");


        List<string> sLev = new List<string>();

        // add Levels for the Project

        sLev.Add("01");

        sLev.Add("02");

        sLev.Add("03");

        sLev.Add("R");


        string dash = "-";

        List<string> newList = new List<string>();


        for (int i = 0; i < sCat.Count; i++)

        {

            for (int j = 0; j < sLev.Count; j++)

            {

                newList.Add(sCat[i] + dash + sLev[j]);

            }

        }


        foreach (var item in newList)

        {

            Console.WriteLine(item);

        }


        Console.ReadLine();

    }


查看完整回答
反对 回复 2023-07-09
  • 3 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信