繁体   English   中英

如何将每个项目创建为另一个列表?

[英]how to create list each item as another list?

我正在尝试将一个列表项创建为另一个列表。我需要该列表每个项目都有另一个列表。我创建了一个字符串作为一个循环的列表。 下一个循环,我需要将每个项目作为一个列表,以根据范围插入数据。 这个怎么做..??

我的代码:

List<string> l = new List<string>(s.Split(';'));
foreach (string item in l) 
{
    if (item.Contains("-"))
    {    
        List<string> parts = new List<string>();
        int min = Int32.Parse(parts[0]);
        int max = Int32.Parse(parts[1]);
        for (int m = min; m <= max; m++)
        {
            // add the value in i to the data
            cmd = "insert into quickcom values('" + destination + "','" + codes + "','" + prefix + "','" + rate + "','" + level + "','" + m + "','" + effective_date + "','" + company_id + "')";

            cmd = ReplaceSpecialCharacters(cmd);

            MySqlCommand sqlCmd = new MySqlCommand(cmd, sqlCon);
            var i = sqlCmd.ExecuteNonQuery();
            cmd = "";
        }
    }
    else
    {
        if (item.Contains(";"))
        {
            List<string> parts = new List<string>(s.Split(';'));

            cmd = "insert into quickcom values('" + destination + "','" + codes + "','" + prefix + "','" + rate + "','" + level + "','" + s + "','" + effective_date + "','" + company_id + "')";

            cmd = ReplaceSpecialCharacters(cmd);

            MySqlCommand sqlCmd = new MySqlCommand(cmd, sqlCon);
            var i = sqlCmd.ExecuteNonQuery();
            cmd = "";
        }
    }
}

帮帮我...

如果您有两个定界符来打破每个记录和记录的每个项目,那么您可以直接获取字符串列表,如下所示

string s = "a2-b2-c2-d2-e2;a3-b4-c2-d2-e2";
var list  = s.Split(';').Select(s1 => s1.Split('-').ToList()).ToList();

不知道这是否是您所需要的,但是可以使用以下类型创建一个列表,该列表的项目依次为字符串List<List<string>>List<List<string>>

初始化一个包含其他列表的列表:

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

然后将您的“零件”添加到此列表中:

g.Add(parts);

希望我能正确理解你!

上面的代码只是一部分,在我的计算机上不起作用。
所以我只写一些评论:
1.列表部分= new List(); 零件是这里从未使用过的变量。
2.我想查看ReplaceSpecialCharacters的详细信息。
3. cmd =“插入...,最好用string.Format替换(”插入.. {0} .. {1}“,para0,para1 ...)
4.列表L =新列表(一个或多个 .Split( ';')); 如果您在此处列出一些string 示例,它将很有帮助。

不确定您想要的是List<List<string>>但这就是我所假设的:

var l = new List<string>(s.Split(';'));
var aggregatedList = new List<List<string>>();

foreach (var item in l)
{
    if (item.IndexOf("-") > -1)
    {
        var a = item.Split('-').Select(n => int.Parse(n)).ToArray();
        var parts = Enumerable.Range(a[0], a[1]-a[0]+1).Select(i => i.ToString()).ToList();
        aggregatedList.Add(parts);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM