这是solution中的代码示例。我正在寻找消除重复问题类的方法。我正在观察列表中包含的方法。
public IEnumerable<Problem> Create(int quantify)
{
for (int i = 0; i < quantify; i++)
{
yield return Create();
}
}发布于 2011-09-09 06:30:36
如果您只是想消除任何重复项,并且Problem支持相等,那么可以使用Distinct方法。
IEnumerable<Problem> collection = ...;
IEnumerable<Problem> noRepeats = collection.Distinct();发布于 2011-09-09 06:34:24
如果你想坚持使用一个迭代器块,你可以使用一个HashSet来避免产生任何重复的Problem实例:
public IEnumerable<Problem> Create(int quantify)
{
HashSet<Problem> problems = new HashSet<Problem>();
for (int i = 0; i < quantify; i++)
{
var problem = Create();
if(!problems.Contains(problem))
{
yield return problem;
problems.Add(problem);
}
}
}发布于 2011-09-09 06:37:11
如果区别基于属性,则可以使用GroupBy
Create(q).GroupBy(p => p.PropertyToCompare).Select(p => p.First());https://stackoverflow.com/questions/7355258
复制相似问题