从类型为Magazine的列表中我想创建一对对象列表,但如果列表有一个奇数,则最后一对的最后一项应为null。在我的代码中,我可以创建一对对列表,但如果列表有一个奇数,则最后一项不会进入列表。
杂志模型:
public class Magazine
{
public string name { get; set; }
public string Url { get; set; }
public string date { get; set; }
public bool IsVisible { get; set; }
}
public class PeoplePair : Tuple<Magazine, Magazine>
{
public PeoplePair(Magazine item1, Magazine item2)
: base(item1, item2 ?? CreateEmptyModel()) { }
private static Magazine CreateEmptyModel()
{
return new Magazine { IsVisible = false };
}
}
我如何创建配对列表:
Magazines = Enumerable.Range(0, input.Count / 2)
.Select(i => new PeoplePair(input[i * 2], input[i * 2 + 1])).ToList();
答案 0 :(得分:4)
之后
Magazines = Enumerable.Range(0, input.Count / 2)
.Select(i => new PeoplePair(input[i * 2], input[i * 2 + 1])).ToList();
您可以检查输入数组是否可以被2分割:input.Length % 2 == 0
如果不是,您只需添加Magazines.Add(new PeoplePair(input.Last(), null))