在C#中的模式之后生成集合中的值

时间:2014-01-19 18:26:33

标签: c#

我有以下标签字符串列表:

List<string> Tags = new List<string> { "EmplId", "EmpName", "EmpAddress" };

我想按照以下模式生成标签:

EmplId1
EmpName1
EmpAddress1
EmplId2
EmpName2
EmpAddress2
EmplId3
EmpName3
EmpAddress3

我写了以下代码:

List<string> Tags = new List<string> { "EmplId", "EmpName", "EmpAddress" };
foreach (var item in Tags)
{
    for (int i = 1; i < 4; i++)
    {
        Console.WriteLine(item+i);
    }
}
Console.ReadLine();

但是此代码生成如下输出:

EmplId1
EmplId2
EmplId3
EmpName1
EmpName2
EmpName3
EmpAddress1
EmpAddress2
EmpAddress3

我如何获得所需的输出?

2 个答案:

答案 0 :(得分:4)

内部循环确实需要是外部循环。你想迭代数字然后重复值

for (int i = 1; i < 4; i++)
{
  foreach (var item in Tags)
  {
     Console.WriteLine(item+i);
  }
}

答案 1 :(得分:3)

您可以使用Linq生成项目:

var items = from i in Enumerable.Range(1, 4)
            from t in Tags
            select t + i;

制作以下项目:

EmplId1
EmpName1
EmpAddress1
EmplId2
EmpName2
EmpAddress2
EmplId3
EmpName3
EmpAddress3
EmplId4
EmpName4
EmpAddress4

如果没有Linq,你应该像Jared指出的那样 - 交换循环。