2014-06-18 68 views
0

有兩個列爲如何打印兩個列表結果我一起

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

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

每個列表有相同數量的值。現在我正在打印每個值,但是如何將a或b的每個值打印在一起。

_teams列表返回澳大利亞,英國,美國 _wins列表返回5,6,7

我想打印像澳大利亞5,英格蘭6,美國7

更新* 我創建XML節點,所以基本上我不想打印在一起。我想類似的值比5 澳大利亞比英國超過6等,我將創建XML節點像

<Team>Australia</Team> 
<Win>5</Win> 
<Team>England </Team> 
<Win>6</Win> 

...等等

+0

使用索引'for'循環?或者更好的是,將這些信息合併到一個類中,並將*這些*存儲在列表中。 –

+0

列表有哪些類型?列表或某物[]? –

+0

研究['Enumerable.Zip'](http://msdn.microsoft.com/en-us/library/vstudio/dd267698(v = vs.100).aspx)。 –

回答

0

試試這個:

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

如何:

for(i = 0; i < _teams.Length; i++) 
{ 
    Console.Write(_teams[i] + " "); 
    Console.Write(_wins[i]); 
    if(i < _teams.Length - 1) 
     Console.Write(","); 
} 
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將採取兩個單獨的列表,並允許你建立一個單一的觀點。

0

您可以使用下面menioned代碼

 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 
      } 
     } 
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

0

試試這個:

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

我們使用IndexOf方法從_teams獲得當前字符串的指數,以及_wins該索引處得到的元素。

但是,如果這是團隊與勝者之間的一對一地圖,Dictionary將是我的首選數據結構。