离开代码后,我遇到了障碍,并且生疏了。但是我正在尝试以2对的形式打印我的项目列表。
List<string> fruits = new List<string>()
{ "Apple", "Banana", "Orange", "Pear", "Grapes", "Apricot" };
我想打印配对:
第1组:苹果,香蕉
第2组:橘子,梨
第三组:葡萄,杏
目前我有一个 foreach
foreach(var item in fruits)
{
Count++;
Console.Write("Group" + count + ": " + item .....); // <--stuck
fruits.Remove(per);
Console.Write("," + per);
}
我之所以要从列表中删除该项目,是因为我没有得到的两倍fruits
。或者,如果您有更好的主意,将不胜感激。如果您认为我有误,请纠正我。
您可以使用GroupBy
整数除法:
List<List<string>> lotsOftwo = fruits.Select((fruit, index) => new {fruit, index})
.GroupBy(x => x.index / 2, x => x.fruit).Select(g => g.ToList()).ToList();
这是可行的,因为整数除法会截断小数部分。
没有LINQ,您可以使用这种稍微更有效的方法:
var lotsOftwo = new List<List<string>>();
for (int i = 0; i < fruits.Count; i += 2)
{
lotsOftwo.Add(fruits.GetRange(i, Math.Min(2, fruits.Count - i)));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句