将列表转换为具有空值的对列表

时间:2018-05-16 11:07:46

标签: c# xamarin xamarin.forms

从类型为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();

1 个答案:

答案 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))

即可