尝试使用LINQ来检查List <bitmapsource> </bitmapsource>中是否存在BitmapSource

时间:2013-12-24 14:08:41

标签: c# linq

我需要检查BitmapSource中是否已存在List<BitmapSource>,但我不确定应该比较什么。将检查项目并将其添加到列表的方法将BitmapSource作为来自WPF的路由命令的参数UserControl

我想做这样的事情:

if(!selectedImages.Any(x => x.SomeBitmapSourceProperty == e.Parameter.SomeBitmapSourceProperty)
     selectedImages.Add(e.Parameter as BitmapSource)

我会用什么来比较两个BitmapSource,我实际上能够从e.Parameter访问该属性吗?

2 个答案:

答案 0 :(得分:2)

问题并不完全清楚,但似乎您想要使用引用相等性检查(即两个BitmapSource值指向同一个对象)。您可以使用直线Contains执行此操作:

var candidate = (BitmapSource)e.Parameter;
if(!selectedImages.Contains(candidate))
{
    selectedImages.Add(candidate);
}

答案 1 :(得分:-1)

尝试:

 if (selectedImages.Count(x =>
         x.SomeBitmapSourceProperty == e.Parameter.SomeBitmapSourceProperty
     ) == 0) selectedImages.Add(e.Parameter as BitmapSource);