2017-05-06 56 views
1

我正在使用VS 2015在C sharp中編寫Windows窗體應用程序。 在這個應用程序中,我有一個字符串集合(List),其中包含多個運動隊的名字。我想把這些運動隊分成幾組。將創建的組數將基於我的字符串集合中的運動隊數量。例如,如果我的隊伍少於8支,我會把隊伍分成兩組。我的問題是,我無法找到一種方法將字符串集合中的項目分割爲兩個新的字符串集合。 基本代碼表明我可以在組上創建並添加字符串項目,但創建兩個組並將項目分散到這兩個新的字符串集合中對我來說是個問題。隨意給我一些提示或幫助:在多個.NET集合中傳播項目

if (i < 6) 
    { 
    /// Make one group and add the teams in this group 
    List<string> groepa = new List<string>(); 
    foreach (var item in lstTeams) 
    { 
    groepa.Add(item); 

    } 

    } 
    else if (i < 8) 
    { 
    /// Make two groups 
    List<string> groepa = new List<string>(); 
    List<string> groepb = new List<string>(); 
+0

也許拿(https://msdn.microsoft。 com/en-us/library/bb503062(v = vs.110).aspx)和Skip(https://msdn.microsoft.com/en-us/library/bb358985(v=vs.110).aspx)? –

回答

4

您可以將主列表中的元素數量除以2。然後在第一個半,把他們在第一列表,下半年進入到第二個列表

它使用了IEnumerable擴展參加並跳過

+2

您可以在構建'groepB'時忽略對'Take(...)'的調用。跳過1個元素並調用「ToList」將枚舉其餘元素。 –

+0

感謝您的快速響應,也是一個非常好的答案。我只是想知道如果我將不平衡數量的元素除以2?它會向上/向下四捨五入嗎?例如7/2是3.5,上半部分需要3個元素,第二個需要4個元素? – Nordin

+0

請忽略我上次評論中的問題。感謝您的幫助。我會將這個話題標記爲已回答。 – Nordin