这里会详细解释: 我有
public class Season
{
#region Public Variables
private int _id;
private string _seasonName;
private int _startMonth;
#endregion
#region Public Properties
public int Id
{
get { return _id; }
set { _id = value; }
}
public int StartMonth
{
get { return _startMonth; }
set { _startMonth = value; }
}
public string SeasonName
{
get { return _seasonName; }
set { _seasonName = value; }
}
#endregion
#region Public Constructor
public Season()
{
this._initialize();
}
public Season(string pSeasonName, int _pStartMonth,int pID)
{
this._initialize(pSeasonName, _pStartMonth, pID);
}
#endregion
}
接下来我有如下所示
IList<Season> seaosns = new List<Season>();
seaosns.Add(new Season("Summer", 4, 1));
seaosns.Add(new Season("Winter", 6, 2));
seaosns.Add(new Season("MidSummer", 10, 1));
这里我需要检查 Ilist Items 中的 ID 是否重复。这可以通过使用 For Loop 来完成,但需要知道是否有其他解决方案。
提前致谢。
最佳答案
最合适的方法是将项目(代替或附加)存储在 Dictionary<int,Season>
中。 ,使用唯一属性 ( Id
) 作为字典中的键。然后你有一个 O(1)
查找既可以测试存在性,也可以按键获取 ( Id
)。但是请注意,字典不是有序的 - 意思是,它不保证遵守插入顺序或键顺序。顺序未定义 - 因此如果您需要它们的特定顺序,您可能需要单独保存。
关于c# - 通过指定属性的唯一性从 List<> 获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10811162/