Ilist 取值

Ilist 取值

场景:.NET IList取值的有关问题

.NET IList取值的问题?
本帖最后由 bbsstrange 于 2014-09-04 11:04:29 编辑

IList ContractDeptsList = dcService.loadDeptCategoryLists();//获取的部门所有列表
IList NContractDeptsList = null;//定义新的Ilist
string[] DeptList = contract.StoreCode; //string数组,假设里面值为0001,0002,0003
foreach (var item in DeptList)
{
     foreach (DepartmentWrap dwItems in ContractDeptsList)
     {
          if (item == dwItems.DeptCode)
          {
               NContractDeptsList.Add(dwItems);
          }
     }
}

我现在就是想实现取ContractDeptsList 这个IList里部门编码与DeptList 数组里的部门编码匹配的数据,其他的都不要,以上是我的写法,感觉好累赘,请问该如何写好?
------解决方案--------------------
http://blog.csdn.net/ranbolwb/article/details/7273558
------解决方案--------------------
IList只是一个接口,你的loadDeptCategoryLists()返回值是什么类型?
IList本身没有什么数据操作的方法,你完全可以用ToList方法转换成List之后再进行where之类的筛选
------解决方案--------------------

list.where(d=>d.xxoo=1).ToList();

------解决方案--------------------

NContractDeptsList =  ContractDeptsList.Where(m => DeptList.Contains(m.部门编码)).ToList();

------解决方案--------------------
var NContractDeptsList = ContractDeptsList.Select(s => DeptList.Contains(s.DeptCode));
------解决方案--------------------
select改where也成