懒得勤快 3 years ago
parent
commit
e251091e80
1 changed files with 35 additions and 0 deletions
  1. 35 0
      README.md

+ 35 - 0
README.md

@@ -223,6 +223,10 @@ Expression<Func<string, bool>> where2 = s => s.Length > 10;
 Func<string, bool> func = where1.Or(where2).Compile();
 bool b=func("abc");// true
 ```
+```csharp
+queryable.WhereIf(!string.IsNullOrEmpty(name),e=>e.Name==name)
+    .WhereIf(()=> age.HasValue,e=>e.Age>=age); // IQueryable的WhereIf扩展函数,满足条件再执行Where
+```
 ### 12.模版引擎
 ```csharp
 var tmp = new Template("{{name}},你好!");
@@ -676,6 +680,37 @@ var nums=Enumerable.Range(1, 10).ExceptBy(Enumerable.Range(5, 10), i => i); // 
 var nums=Enumerable.Range(1, 10).IntersectBy(Enumerable.Range(5, 10), i => i); // 按字段取交集
 var nums=Enumerable.Range(1, 10).SequenceEqual(Enumerable.Range(5, 10), i => i); // 判断序列相等
 var nums=Enumerable.Range(1, 10).OrderByRandom(); // 随机排序
+
+// 多个集合取交集
+var list=new List<List<MyClass>>(){
+    new List<MyClass>(){
+        new MyClass(){Name="aa",Age=11},
+        new MyClass(){Name="bb",Age=12},
+        new MyClass(){Name="cc",Age=13},
+    },
+    new List<MyClass>(){
+        new MyClass(){Name="bb",Age=12},
+        new MyClass(){Name="cc",Age=13},
+        new MyClass(){Name="dd",Age=14},
+    },
+    new List<MyClass>(){
+        new MyClass(){Name="cc",Age=13},
+        new MyClass(){Name="dd",Age=14},
+        new MyClass(){Name="ee",Age=15},
+    },
+};
+var sect=list.IntersectAll(m=>m.Name); // new MyClass(){Name="cc",Age=13}
+
+var list=new List<List<int>>(){
+    new(){1,2,3},
+    new(){2,3,4},
+    new(){3,4,5}
+};
+var sect=list.IntersectAll();// [3]
+
+// 集合元素改变其索引位置
+list.ChangeIndex(item,3); // 将元素item的索引位置变为第3个
+list.ChangeIndex(t=>t.Id=="123",2); // 将id为123的元素的索引位置变为第2个
 ```
 ### 37.Mime类型
 ```csharp