从一个集合中过滤另一个集合中存在的项(类似in)
直接贴代码出来:
List<PriceMark> list = PriceMarkDAL.m_PriceMarkDAL.GetList("Erp_ProName='TLC7528CDWR'");
ZWCUSTORDERClient pri = new ZWCUSTORDERClient();
ZwjgA610Konm[] Prices = new ZwjgA610Konm[];
byte b = pri.ZWsPrice("TLC7528CDWR", ref Prices); List<ZwjgA610Konm> PriList = Prices.ToList();
IEnumerable<ZwjgA610Konm> query = from t in PriList where list.Any(r => t.Kstbm == r.Grade) select t;
List<ZwjgA610Konm> kk = query.ToList();
以上代码贴出来不方便观察的话,下面是直接从VS中截图出来的,方便查看
这样查看一目了然啊,大致意思是这样的,List<PriceMark> list存放的是型号TLC7528CDWR要显示的价位档,从本地数据表中读取,取出来有要显示1、100、1000
ZwjgA610Konm[] Prices 是从SAP中取出来的型号TLC7528CDWR的所有价位档,我这里是通过WebService取出来的,所以才会搞出这么麻烦的事来,要是都是本地读多好,也不用这么蛋疼了。。。取出来的会包括1、25、50、100.....3000等很多价位档
下面两行就是从集合Prices中取出包含在list集合中的价位档,也就是从中取出1、100、1000三个价位档来,最后得到一个只包含1、100、1000三个价位档的新的集合List<ZwjgA610Konm> kk,结构不变,跟Prices结构一样
IEnumerable<ZwjgA610Konm> query = from t in PriList where list.Any(r => t.Kstbm == r.Grade) select t;
List<ZwjgA610Konm> kk = query.ToList();
下面是真实的网站显示效果(价格显示了三档)
以上方法是为了避免写出两个集合循环比较的代码(一个内循环,一个外循环,本人认为这种方法不是一个优秀程序员应该做的事),当然了,如果只取出一个价位档的话就不需要这么麻烦了,直接按下面的方法就行了
List<ZwjgA610Konm> kk = PriList.FindAll(c => c.Kstbm == );
或者
List<ZwjgA610Konm> kk = PriList.FindAll(delegate(ZwjgA610Konm c) { return c.Kstbm == ; });
一样的效果,上面是lamda表达式的简写,可以省很多代码。
本人出自 “海角之上” 博客,转载请注明出处:http://www.cnblogs.com/sky6699/p/5266727.html
从一个集合中过滤另一个集合中存在的项(类似in)的更多相关文章
- 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制
过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...
- addBack() 添加堆栈中元素集合到当前集合,一个选择性的过滤选择器。
addBack() 概述 添加堆栈中元素集合到当前集合,一个选择性的过滤选择器. 如上所述在讨论中的.end(), jQuery对象维护一个堆栈内部来跟踪匹配的元素集合的变化.当一个DOM遍历方法被调 ...
- 一个简单的Java集合范围过滤的多个方式对比
在一个项目里面有这么一个技术需求: 1.集合中元素个数,10M 2.根据上限和下限从一个Set中过滤出满足要求的元素集合. 实际这个是个很典型的技术要求, 之前的项目也遇见过,但是因为当时的类库不多, ...
- java集合TreeMap应用---求一个字符串中,每一个字母出现的次数
package cn.itcast.p1.map.test; import java.util.Iterator; import java.util.Map; import java.util.Tre ...
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地 ...
- 【转载】C#中AddRange方法往ArrayList集合末尾添加另一个集合
ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,如果需要往一 ...
- [python语法]python中如何判断一个集合是另一个集合的子集?
问:python中如何判断一个集合是另一个集合的子集? 答:用issubset()方法 语法: A.issubset(B) 返回: True 如果A是B的子集. False 如果A不是B的子集. 样例 ...
- NoSQLBooster如何MongoDB的部分文档从一个集合拷贝到另外一个集合中
假设MongoDB数据库中存有collection_A和collection_B两个集合,如下图所示: (一)先从集合collection_A中拷贝选择的文档 打开collection_A,看到目前有 ...
- BeanUtils使用:从一个map集合中,拷贝到javaBean中(四)
package beanutil; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; impo ...
随机推荐
- python中的os.walk
原文出处:https://www.jianshu.com/p/bbad16822eab python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1. ...
- CSS中水平居中设置的几种方式
1.行内元素: 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的. <body> <div class="t ...
- Spring学习(七)——增强类
Spring 切点 什么是切点?切点(Pointcut),每个程序类都拥有多个连接点,如一个拥有两个方法的类,这两个方法都是连接点,即连接点是程序类中客观存在的事物.但在这为数从多的连接点中,如何定位 ...
- git找回当前目录下误删的所有文件
git checkout . 参考:http://opentechschool.github.io/social-coding/extras/delete-restore.html
- String、Date、Calendar之间的转换
1.String.Date.Calendar之间的转换 要用到格式化类SimpleDateFormat package com.rong.se; import java.text.ParseExcep ...
- so加载报错:dlopen failed: couldn't map ... Permission denied
转自:https://blog.csdn.net/u013270444/article/details/60869376 问题描述: 我的应用当中集成了一个安全相关的sdk,而这个sdk中使用的so是 ...
- (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】
原文地址:http://www.cnblogs.com/melonblog/archive/2013/05/09/3062303.html 原文作者:豆浆油条 - melon 本文示例代码测试环境是W ...
- Hibernate 中 load() 和 get() 的区别
get 和 load 方式都是是根据 id 取得一个记录.下边详细说一下 get 和 load 的不同,因为有些时候为了对比也会把 find 加进来. 1.从返回结果上对比: load 方式检索不到的 ...
- 面试- 阿里-. 大数据题目- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
假如每个url大小为10bytes,那么可以估计每个文件的大小为50G×64=320G,远远大于内存限制的4G,所以不可能将其完全加载到内存中处理,可以采用分治的思想来解决. Step1:遍历文件a, ...
- 第73天:jQuery基本动画总结
一.DOM对象跟jQuery对象相互转换 jQuery对象转换成DOM对象: 方式一:$(“#btn”)[0] 方式二:$(“#btn”).get(0) DOM对象转换成jQuery对象: $(doc ...