jQuery find() 搜索所有段落中的后代 C# find() 第一个匹配元素 Func 有返回值 Action是没有返回值 Predicate 只有一个参数且返回值为bool 表达式树Expression
2018-08-24 12:14
597 查看
所有p后代span
Id为 TotalProject 的 select 标签 的后代 option标签 为选中的 text
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { List<string> sd = new List<string>() { "1", "1", "1" }; var sds = sd.Find(a => a == "1"); Console.WriteLine(sd.Find(a => a == "1")); //Lambda 表达式 如果有去的时候 可以不写小括号 () --代表 参数 //Lambda 表达式 如果有回的时候 可以不写大括号 {} --代表 方法体 //() => {} Func<int> 有回 = () => 1; // 无去有回 Func<int, int> 有去有回 = a => a + 1; // 有去有回 Console.WriteLine(有回()); Console.WriteLine(有去有回(1)); Action<int> 无回 = a => Console.WriteLine(a); Action<int, int> 无回2 = (a, b) => Console.WriteLine(a + b); //Console.WriteLine(无回(1)); // : 无法从“void”转换为“string” 无回(1); 无回2(1, 2); Predicate<string> 有去回bool = a => true; Predicate<int> 有去回bool2 = a => 5 == a; Console.WriteLine(有去回bool("asd")); Console.WriteLine(有去回bool2(12)); var sdsdsds = sd.Where(a => a == "1"); // 去,集合中每个元素。 回,bool //sd集合中 每个元素是否满足某条件 满足 返回true(当前元素 被过滤出来) 不满足 返回 false(当前元素 没被过滤出来) //sd.Where() linq 里面就是用这种方法查值的 委托 //表达式树里面的 T 是 TDelegate(委托泛型) 所以要为委托泛型的格式 也叫委托类型 委托也是有很多的类型的 // 1 的类型 是 int "a" 的类型 是 string // a => a == "1" 的类型 是 Func<string, bool> // (a, b) => Console.WriteLine(a + b) 的类型 是 Action<int, int> // a => 5 == a 的类型 是 Predicate<int> //Expression 表达式树0 = a => 5 == a; //错误 无法将 lambda 表达式 转换为类型“System.Linq.Expressions.Expression”,因为它不是委托类型 Expression<Predicate<int>> 表达式树2 = a => 5 == a; // 值虽然都一样 但 a => 5 == a 这一步 赋值给了 表达式树委托类型 Expression 表达式树 = 表达式树2; // 表达式树委托类型值 隐形 转换为 基类表达式树委托 无冲突 //上面报错 只知道是委托 但不知道是哪种 表达式树委托类型 所以 表达式树委托 和 委托 是不一样的概念 虽然 值一样 可能 // Expression<Predicate<int>> 表达式树2 = a => 5 == a; 赋值的时候 内部做了处理 Console.WriteLine(表达式树2.ReturnType); //表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 bool Console.WriteLine(表达式树2.Compile()(5)); //表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 返回true Expression<Func<int, int>> 表达式树有去有回 = a => a + 1; Console.WriteLine(表达式树有去有回.ReturnType); // 表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 int Console.WriteLine(表达式树有去有回.Compile()(5)); // 表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 返回 6 Expression<Action<int, int>> 表达式树有去无回 = (a, b) => Console.WriteLine(a + b); Console.WriteLine(表达式树有去无回.ReturnType); // 表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 //Void 空指针 null 是指针指向null 空 表达式树有去无回.Compile()(5, 6); // 表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 6 返回 11 //说明 表达式树 的作用的 对委托(lambda 表达式) 的处理 加工 整合 重组 对更灵活 操作 委托(lambda 表达式) 提供一些帮助 } } }
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { List<string> sd = new List<string>() { "1", "1", "1" }; var sds = sd.Find(a => a == "1"); Console.WriteLine(sd.Find(a => a == "1")); //Lambda 表达式 如果有去的时候 可以不写小括号 () --代表 参数 //Lambda 表达式 如果有回的时候 可以不写大括号 {} --代表 方法体 //() => {} Func<int> 有回 = () => 1; // 无去有回 Func<int, int> 有去有回 = a => a + 1; // 有去有回 Console.WriteLine(有回()); Console.WriteLine(有去有回(1)); Action<int> 无回 = a => Console.WriteLine(a); Action<int, int> 无回2 = (a, b) => Console.WriteLine(a + b); //Console.WriteLine(无回(1)); // : 无法从“void”转换为“string” 无回(1); 无回2(1, 2); Predicate<string> 有去回bool = a => true; Predicate<int> 有去回bool2 = a => 5 == a; Console.WriteLine(有去回bool("asd")); Console.WriteLine(有去回bool2(12)); var sdsdsds = sd.Where(a => a == "1"); // 去,集合中每个元素。 回,bool //sd集合中 每个元素是否满足某条件 满足 返回true(当前元素 被过滤出来) 不满足 返回 false(当前元素 没被过滤出来) //sd.Where() linq 里面就是用这种方法查值的 委托 //表达式树里面的 T 是 TDelegate(委托泛型) 所以要为委托泛型的格式 也叫委托类型 委托也是有很多的类型的 // 1 的类型 是 int "a" 的类型 是 string // a => a == "1" 的类型 是 Func<string, bool> // (a, b) => Console.WriteLine(a + b) 的类型 是 Action<int, int> // a => 5 == a 的类型 是 Predicate<int> //Expression 表达式树0 = a => 5 == a; //错误 无法将 lambda 表达式 转换为类型“System.Linq.Expressions.Expression”,因为它不是委托类型 Expression<Predicate<int>> 表达式树2 = a => 5 == a; // 值虽然都一样 但 a => 5 == a 这一步 赋值给了 表达式树委托类型 Expression 表达式树 = 表达式树2; // 表达式树委托类型值 隐形 转换为 基类表达式树委托 无冲突 //上面报错 只知道是委托 但不知道是哪种 表达式树委托类型 所以 表达式树委托 和 委托 是不一样的概念 虽然 值一样 可能 // Expression<Predicate<int>> 表达式树2 = a => 5 == a; 赋值的时候 内部做了处理 Console.WriteLine(表达式树2.ReturnType); //表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 bool Console.WriteLine(表达式树2.Compile()(5)); //表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 返回true Expression<Func<int, int>> 表达式树有去有回 = a => a + 1; Console.WriteLine(表达式树有去有回.ReturnType); // 表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 int Console.WriteLine(表达式树有去有回.Compile()(5)); // 表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 返回 6 Expression<Action<int, int>> 表达式树有去无回 = (a, b) => Console.WriteLine(a + b); Console.WriteLine(表达式树有去无回.ReturnType); // 表达式树委托中 承载的 lambda 表达式(委托) 的返回类型。 //Void 空指针 null 是指针指向null 空 表达式树有去无回.Compile()(5, 6); // 表达式树委托中 承载的 lambda 表达式(委托) 再传给个5 6 返回 11 //说明 表达式树 的作用的 对委托(lambda 表达式) 的处理 加工 整合 重组 对更灵活 操作 委托(lambda 表达式) 提供一些帮助 } } } //public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate); //public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate); // IQueryable 提供对数据类型已知的特定数据源的查询进行计算的功能。 IQueryable 那个 到数据源中查 才能存到内存中 // IEnumerable 公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。 已经IEnumerable存到内存中了 只做 简单迭代 //所以 Expression<Func<TSource, bool>> predicate 带表达式树的 要去数据源中查 才能存到内存中 //Func<TSource, bool> predicate 不带表达式树的 直接根据 委托查的 直接 在内存中做 简单迭代
相关文章推荐
- Javascript实例教程:querySelector()方法接受一个CSS查询并返回匹配模式的第一个子孙元素,如果没有匹配的元素则返回null。
- 错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
- 编程之美:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- MFC:error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
- “cv::max”: 6 个重载中没有一个可以转换所有参数类型
- eclipse 出现所有项目都没有class文件,也没有包,只有一个src目录
- 编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果
- 找到多个与名为“HOME”的控制器匹配的类型。如果为此请求(“{CONTROLLER}/{ACTION}/{ID}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“NAMESPACES”参数的“MAPROUTE”方法的重载来注册此路由。
- vs2010中的错误错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型和Unicode字符集和多字节字符集关系
- Stream 中的 求最大值,第一个值,任意一个值,是否含有匹配元素
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
- 一道值得深思的面试题:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- 写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组。
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 例题:把一个超市购物的题做成函数。这个题做成函数没有必要,但可以了解输入参数,输出参数,返回值,函数体,还有结构体,ArryList集合,for循环算结果,以及集合里 .count的使用
- 引用 error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
- error C2665: 2 个重载中没有一个可以转换所有参数类型
- error C2665: “AfxBeginThread”: 2 个重载中没有一个可以转换所有参数类型
- func_get_args()获取一个函数的所有参数
- swift 中定义的方法只有一个参数没有外部参数名的解决办法