C# Linq 取得两个列表的交集
来源:互联网 发布:测bpm软件 编辑:程序博客网 时间:2024/05/17 06:46
public class StudyInfoModel
{
public string InstanceUID = "";
}
public class StudyCompare : IEqualityComparer<StudyInfoModel>
{
// StudyInfoModel are equal if their UID equal.
public bool Equals(StudyInfoModel x, StudyInfoModel y)
{
//Check whether the compared objects reference the same data.
if (Object.ReferenceEquals(x, y)) return true;
//Check whether any of the compared objects is null.
if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
return false;
//Check whether the Study' properties are equal.
return x.InstanceUID == y.InstanceUID;
}
// If Equals() returns true for a pair of objects
// then GetHashCode() must return the same value for these objects.
public int GetHashCode(StudyInfoModel study)
{
//Check whether the object is null
if (Object.ReferenceEquals(study, null)) return 0;
//Get hash code for the Name field if it is not null.
int hashStudyName = study.InstanceUID == null ? 0 : study.InstanceUID.GetHashCode();
return hashStudyName;
}
}
以上实现了关于StudyInfoModel的IEqualityCompare接口, 其中条件为InstanceUID相同。
具体使用:
List<StudyInfoModel> StudyData = new List<StudyInfoModel>();
List<StudyInfoModel> StudyList = new List<StudyInfoModel>();
////初始化2个数组数据
.......//取得StudyData数组中InstanceUID在StudyLIst存在的所有项
var needModifyStudy = StudyData.Intersect(StudyList, new StudyCompare()).ToList();
比如StudyData中是InstanceUID分别为1,2,3,4,5,6的数据, StudyList中是InstanceUID分别为2,4,6,8,10的数据,
则查询结果为StudyData中2,4,6的项。
- C# Linq 取得两个列表的交集
- 取得两个List的交集,retainAll()方法
- 取得两个List的交集,retainAll()方法
- 取得两个List的交集,retainAll()方法
- LINQ获取两个List的交集
- 两个时间段取得交集
- C# Linq获取两个List或数组的差集交集
- Python 提取两个列表的交集
- c#中求两个数组的交集
- c# linq的差集,并集,交集,去重
- Python -- 两个列表的差集、并集和交集
- C#比较两个DataTable 的交集、并集、差集
- linq快速比较两个列表
- Linq 数据操作,两个数组求差、交集、并集
- 使用 Python 获取两个列表的交集、并集、差集的常用方法
- 求两个数组的交集
- 求两个数组的交集
- 求两个数组的交集
- 如何在kindle 3上无法进入 http://www.google.com/reader, 先登陆www.google.com, 然后选择阅读器。
- WPF ListView VisualPanel
- DataGrid 滚动特定的行或者列
- C# Unit Test 备注
- wpf datagrid row的命中测试
- C# Linq 取得两个列表的交集
- C#工程引用dll如何配置
- PC lint -sem 用法示例
- The following module was built either with optimizations enabled or without debug information - winzheng - 博客园
- 火车票提前11天电话95105105订票流程~预知步骤节省时间
- Visual Studio 编译后去掉只读属性
- 06-jbpm工作流之状态活动State
- c# namespace不能和class的name 相同
- win32 UNICODE 支持