如何一起打印两个列表结果

时间:2014-06-18 05:29:19

标签: c# .net c#-4.0 c#-3.0

我有两个列表

foreach (var a in _teams)
{
    Console.WriteLine(a);
}

foreach (var b in _wins)
{
    Console.WriteLine(b);
}

每个列表都有相同数量的值。现在我正在单独打印每个值但是如何打印a或b的每个值。

_teams list返回澳大利亚,英国,美国 _wins列表返回5,6,7

我想打印像澳大利亚5,英格兰6,美国7

更新* 我正在创建xml节点,所以基本上我不想一起打印它。我想要的价值观 澳大利亚超过5比英格兰超过6,所以我将创建像

这样的xml节点
<Team>Australia</Team>
<Win>5</Win>
<Team>England </Team>
<Win>6</Win>

......等等

6 个答案:

答案 0 :(得分:0)

这个怎么样:

for(i = 0; i < _teams.Length; i++)
{
    Console.Write(_teams[i] + " ");
    Console.Write(_wins[i]);
    if(i < _teams.Length - 1)
        Console.Write(",");
}

答案 1 :(得分:0)

我建议在IEnumerable上查看zip函数。像这样:

var lst1 = new List<string>(){"One", "Two","Three"};
var lst2 = new List<string>(){"A", "B","C"};
var combined = lst1.Zip(lst2, (fst,snd) => {return fst + ":" + snd;});
foreach (var item in combined)
{
    Console.WriteLine (item);
}

Zip将采用两个单独的列表,并允许您在两个列表中构建单个视图。

答案 2 :(得分:0)

试试这个:

foreach (var a in _teams.Zip(_wins, (t, w) => new { t, w }))
{
    Console.WriteLine(a.t + " " + a.w);
}

答案 3 :(得分:0)

您可以使用下面提到的代码

        List<string> _terms = new List<string>();
        List<string> _wins = new List<string>();
        _terms.Add("Australia");
        _wins.Add("5");
        using (var e1 = _terms.GetEnumerator())
        using (var e2 = _wins.GetEnumerator())
        {
            while (e1.MoveNext() && e2.MoveNext())
            {
                var item1 = e1.Current;
                var item2 = e2.Current;

                // use item1 and item2
            }
        }

答案 4 :(得分:0)

你可以使用for循环......

for (int i = 0; i < teams.Count; i++)
{
    Console.WriteLine(_teams[i]);
    Console.WriteLine(_wins[i]);
}

...但是词典是一个更好的解决方案:

Dictionary<string, int> _teams = new Dictionary<string, int>();
_teams.Add("Australia", 5);
_teams.Add("England", 6);
...
foreach( KeyValuePair<string, int> kvp in _teams )
{
    Console.WriteLine("{0} {1}", kvp.Key, kvp.Value);
}

MSDN Dictionary

答案 5 :(得分:0)

试试这个:

_teams.ForEach(x => Console.WriteLine(x +" " + _wins[_teams.IndexOf(x)]));

我们使用IndexOf方法从_teams获取当前字符串的索引,并获取该_wins索引处的元素。

但是,如果这是团队之间的一对一地图,那么Dictionary将成为我首选的数据结构。