首页 > 解决方案 > 如何根据对象的属性对添加对象的位置进行排序

问题描述

我想知道是否有人可以阐明一种将具有相同属性值的对象添加到单独列表的方法。

我怎样才能做到这一点?

标签: c#.netlistlinq

解决方案


我建议使用 aDictionary<int, List<Candidate>>而不是多个列表。

CandidateList可能看起来像这样:

public class CandidateList
{
    private Dictionary<int, List<Candidate>> _candidatesByFrameNumber;

    public CandidateList()
    {
        _candidatesByFrameNumber = new Dictionary<int, List<Candidate>>();
    }

    public void Add(Candidate candidate)
    {
        if (!_candidatesByFrameNumber.TryGetValue(candidate.FrameNumber, out var lst))
        {
            lst = new List<Candidate>();
            _candidatesByFrameNumber.Add(candidate.FrameNumber, lst);
        }

        lst.Add(candidate);
    }
}

推荐阅读