在派生组合时,生成自动生成数字的可能方法是什么.
public enum Color
{
Red,Green,Blue
}
public enum Vehicle
{
Car,Bike
}
Run Code Online (Sandbox Code Playgroud)
(即){Red,Car},{Red,Bike},{Green,Car},{Green,Bike} ......
(Jon Skeet帮助我解决了这个问题).
var query = from Color c in Enum.GetValues(typeof(Color))
from Vehicle v in Enum.GetValues(typeof(Vehicle))
select new { Color = c, Vehicle = v };
Run Code Online (Sandbox Code Playgroud)
现在我想要这样的组合
{1,Red,Car},{2,Red,Bike},{3,Green,Car},{4,Green,Bike},{5,Blue,Car},{6,Blue,Bike}
Run Code Online (Sandbox Code Playgroud)
生成自动数字的方法是什么?
另一种选择是使用包含项目索引的重载Select方法.基于原始查询,您可以使用:
var indexedQuery = query.Select((item, i) => new { Index = i + 1, Item = item });
foreach (var o in indexedQuery)
{
Console.WriteLine("{0},{1},{2}", o.Index, o.Item.Color, o.Item.Vehicle);
}
Run Code Online (Sandbox Code Playgroud)
尝试:
int optionNumber = 0;
var query = from Color c in Enum.GetValues(typeof(Color))
from Vehicle v in Enum.GetValues(typeof(Vehicle))
select new { Number = optionNumber++, Color = c, Vehicle = v };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |