diff --git "a/\345\210\230\346\254\242/20241213--Linq\347\273\203\344\271\240.md" "b/\345\210\230\346\254\242/20241213--Linq\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..e09902bdd85d1b34e0ed0fabca1211e46f5a6f7e --- /dev/null +++ "b/\345\210\230\346\254\242/20241213--Linq\347\273\203\344\271\240.md" @@ -0,0 +1,89 @@ +```cs + // 查询并填充 找出数组中第一个大于2的元素,并用它填充后面的所有位置。 + public dynamic T20() + { + int[] numbers = { 1, 2, 3, 4, 5, 6, 18, 23, 64, 7, 18, 2, 3 }; + int idx = -1; + var res = numbers.FirstOrDefault(x => x > 2); + idx = Array.IndexOf(numbers, res); + var list = numbers.Select((item, index) => + { + if (index >= idx) + { + return res; + } + return item; + }); + return list; + } + // 查询并排除 从数组中排除所有小于5的元素。 + public dynamic T21() + { + int[] numbers = { 1, 2, 3, 4, 5, 6, 18, 23, 64, 7, 18, 2, 3 }; + var list = numbers.Where(x => x > 5); + return list; + } + // 查询并填充默认值 如果数组中存在null值,用默认值0替换 + public dynamic T22() + { + int?[] nullableNumbers = { 1, null, 3, null, 5 }; + var list = nullableNumbers.Select(x => + { + return x == null ? 0 : x; + }); + return list; + } + // 查询并转换类型 将字符串数组转换为整数数组。 + public dynamic T23() + { + string[] stringNumbers = { "1", "2", "3", "4" }; + var list = stringNumbers.Select(x => int.Parse(x)); + return list; + } + // 查询并使用OfType过滤 从对象数组中过滤出字符串类型的元素。 + public dynamic T24() + { + object[] objects = { "String", 123, "Another String", 456 }; + var result = objects.OfType().ToList(); + return result; + } + // 查询并使用Zip合并 合并两个数组,并创建一个包含元素对的新数组。 + public dynamic T25() + { + int[] numbers1 = { 1, 2, 3 }; + int[] numbers2 = { 4, 5, 6 }; + // var obj= new {A=numbers1,B=numbers2}; + var obj = numbers1.Zip(numbers2,(x, y) => x + " " + y); + return obj; + } + // 查询并使用Range生成 生成一个包含1到10的整数数组。 + public dynamic T26() + { + var list = Enumerable.Range(1, 10); + return list; + } + // 查询并使用Repeat重复 重复一个元素多次,创建一个新数组。 + public dynamic T27() + { + var list = Enumerable.Repeat("我是一个元素",10); + return list; + } + // 查询并使用Take限制数量 从数组中取出前5个元素 + public dynamic T28() + { + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + var list = numbers.Take(5); + return list; + } + // 查询并使用Skip跳过元素 跳过数组中的前3个元素,然后取出剩余的元素。 + public dynamic T29() + { + int[] numbers = { 1, 2, 3, 4, 5, 6,18,23,64,7,18,2,3 }; + var list = numbers.Skip(3); + // var number = Enumerable.Range(1,100).ToList(); + // int pageSize = 10; + // int pageIndex = 6; + // var list = number.Skip((pageIndex - 1) * pageSize).Take(pageSize); + return list; + } +``` \ No newline at end of file