Mir*_*ral 4 c# linq sequence auto-generate
我有一个课程预订
public class Booking
{
public int Id { get; set; }
public string From { get; set; }
public string To { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在linq的帮助下创建了一个List预订,我想要一些机制,我希望自动生成'Id'属性增加1.
即如果列表预订包含10个预订对象,则第一个对象的Id = 1,第二个Id = 2,因此一个......
任何建议
以下内容将为您提供新预订的列表,其中索引将投射到您的ID属性中.你可以做类似的事情来用索引来更新现有的列表......
var myBookings = myExistingListOfTen.Select((b, index) => new Booking
{
Id = index + 1,
From=b.From,
To=b.To
});
Run Code Online (Sandbox Code Playgroud)
不好,但它会工作.诀窍是使用提供项目索引的重载.
list = list.Select((item, index) => { item.Id = index; return item; });
Run Code Online (Sandbox Code Playgroud)
这将更新现有的预订,但你也可以选择一个id设置的新实例,return并以Scott Ivey建议的方式重复预订和丢失引用来避免这种丑陋.当然,如果你想要一个基于id的id,你必须添加一个.
我觉得以这种方式生成id有点奇怪,但是如果你得到一个没有id的新预订列表并希望生成它们,它可能是一个可接受的解决方案.在这种情况下,id显然不应该以零或一个开头,而是最大的已分配id加一.
| 归档时间: |
|
| 查看次数: |
7906 次 |
| 最近记录: |