在多个.NET集合中传播项目

时间:2017-05-06 19:42:57

标签: c# .net collections

我正在使用VS 2015在C sharp中编写一个Windows窗体应用程序。 在这个应用程序中,我有一个字符串集合(List),其中包含多个运动队的名称。我想把这些运动队分成几组。将创建的组数量取决于我的字符串集合中的运动队数量。例如,如果我的团队少于8人,我会将团队分成两组。我的问题是我无法找到一种方法来将我的字符串集合中的项目分成两个新的字符串集合。 基础代码显示我可以在组上创建并添加字符串项但是创建两个组并将这些项分布在这两个新的字符串集合上对我来说是一个问题。随意给我一些提示或帮助:

   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>();

1 个答案:

答案 0 :(得分:4)

您可以将主列表中的元素数除以2。然后取上半部分并将它们放在第一个列表中,后半部分转到第二个列表

int numElements = lstTeams / 2;
List<string> groepa = lstTeams.Take(numElements).ToList();
List<string> groepb = lstTeams.Skip(numElements).ToList();

这使用IEnumerable扩展Take和Skip