diff --git a/LinqStudy.Test/LinqToObject/GroupTest.cs b/LinqStudy.Test/LinqToObject/GroupTest.cs
index c511165..732400d 100644
--- a/LinqStudy.Test/LinqToObject/GroupTest.cs
+++ b/LinqStudy.Test/LinqToObject/GroupTest.cs
@@ -1,10 +1,7 @@
using System.Collections;
using System.Collections.Generic;
-
using System.Linq;
-
using Xunit;
-
using LinqStudy;
namespace LinqStudy.Test.LinqToObject
@@ -76,7 +73,7 @@ namespace LinqStudy.Test.LinqToObject
}
///
- /// 重载:keySelector, comparer
+ /// 重载2:keySelector, comparer
/// key:是引用类型,使用自定义比较器
///
[Fact]
@@ -91,16 +88,20 @@ namespace LinqStudy.Test.LinqToObject
};
- var group = peoples.GroupBy(p=>p.Hometown,new HometownEqualityComparer());
+ var group = peoples.GroupBy
+ (
+ p=>p.Hometown,
+ new HometownEqualityComparer()
+ );
- var groupFirstNames=group.First().Select(q=>q.Name).ToList();
+ var actual=group.First().Select(q=>q.Name).ToList();
var expected=new List(){"河南周口人","俺河南周口哩"};
- Assert.Equal(expected,groupFirstNames);
+ Assert.Equal(expected,actual);
}
///
- /// 重载:keySelector, elementSelector
+ /// 重载3:keySelector, elementSelector
/// key:是引用类型,使用自定义比较器
///
[Fact]
@@ -115,15 +116,20 @@ namespace LinqStudy.Test.LinqToObject
};
- var group = peoples.GroupBy(p=>p.Id,t=>t.Name).ToList();
+ var group = peoples.GroupBy
+ (
+ p=>p.Id,
+ t=>t.Name
+ )
+ .ToList();
- var groupFirstNames=group[2].FirstOrDefault();
+ var actual=group[2].FirstOrDefault();
var expected="上海松江人";
- Assert.Equal(expected,groupFirstNames);
+ Assert.Equal(expected,actual);
}
///
- /// 重载:keySelector elementSelector comparer
+ /// 重载4:keySelector elementSelector comparer
///
[Fact]
public void GroupBy_keySelector_elementSelector_comparer_Test()
@@ -137,14 +143,23 @@ namespace LinqStudy.Test.LinqToObject
};
- var group = peoples.GroupBy(p=>p.Hometown,t=>t.Name,new HometownEqualityComparer()).ToList();
+ var group = peoples.GroupBy
+ (
+ p=>p.Hometown,
+ t=>t.Name,
+ new HometownEqualityComparer()
+ )
+ .ToList();
- var groupFirstNames=group[2].FirstOrDefault();
+ var actual=group[2].FirstOrDefault();
var expected="上海松江人";
- Assert.Equal(expected,groupFirstNames);
+ Assert.Equal(expected, actual);
}
+ ///
+ /// 重载5:keySelector resultSelector
+ ///
[Fact]
public void GroupBy_keySelector_resultSelector_Test()
{
@@ -157,12 +172,103 @@ namespace LinqStudy.Test.LinqToObject
};
- var group = peoples.GroupBy(p=>p.Id, (key,teacher) => teacher.Select(t=>t.Name)).ToList();
+ var group = peoples.GroupBy
+ (
+ p=>p.Id,
+ (key,teacher) => teacher.Select(t=>t.Name)
+ )
+ .ToList();
+
+ var lastGroupItem=group[2].FirstOrDefault();
+ var expected="上海松江人";
+
+ Assert.Equal(expected,lastGroupItem);
+ }
+
+ ///
+ /// 重载6:keySelector resultSelector
+ ///
+ [Fact]
+ public void GroupBy_keySelector_resultSelector_comparer_Test()
+ {
+ List peoples=new List()
+ {
+ new Teacher(){Id=1, Name="河南周口人", Hometown=new Hometown(){Province="河南", City="周口"}},
+ new Teacher(){Id=1, Name="俺河南周口哩", Hometown=new Hometown(){Province="河南",City="周口"}},
+ new Teacher(){Id=3, Name="上海宝山人", Hometown=new Hometown(){Province="上海",City="宝山"}},
+ new Teacher(){Id=4, Name="上海松江人", Hometown=new Hometown(){Province="上海",City="松江"}},
+ };
+
+ var group = peoples.GroupBy
+ (
+ p=>p.Hometown,
+ (key,teacher) => teacher.Select(t=>t.Name),
+ new HometownEqualityComparer()
+ )
+ .ToList();
+
+ var lastItem=group[2].FirstOrDefault();
+ var expected="上海松江人";
+
+ Assert.Equal(expected, lastItem);
+ }
+
+ ///
+ /// 重载7:keySelector elementSelector resultSelector
+ ///
+ [Fact]
+ public void GroupBy_keySelector_elementSelector_resultSelector_Test()
+ {
+ List peoples=new List()
+ {
+ new Teacher(){Id=1, Name="河南周口人", Hometown=new Hometown(){Province="河南", City="周口"}},
+ new Teacher(){Id=1, Name="俺河南周口哩", Hometown=new Hometown(){Province="河南",City="周口"}},
+ new Teacher(){Id=3, Name="上海宝山人", Hometown=new Hometown(){Province="上海",City="宝山"}},
+ new Teacher(){Id=4, Name="上海松江人", Hometown=new Hometown(){Province="上海",City="松江"}},
+ };
+
+ var group = peoples.GroupBy
+ (
+ p=>p.Hometown.Province+p.Hometown.City,
+ (teacher)=> new {Id= teacher.Id,name=teacher.Name, Province=teacher.Hometown.Province},
+ (key, result) => result.Select(q=>q.Province)
+ )
+ .ToList();
- var groupFirstNames=group[2].FirstOrDefault();
+ var lastItem=group[2].FirstOrDefault();
var expected="上海松江人";
- Assert.Equal(expected,groupFirstNames);
+ Assert.Equal(expected, lastItem);
+ }
+
+ ///
+ /// 重载8:keySelector elementSelector resultSelector
+ ///
+ [Fact]
+ public void GroupBy_keySelector_elementSelector_resultSelector_comparer_Test()
+ {
+ List peoples=new List()
+ {
+ new Teacher(){Id=1, Name="河南周口人", Hometown=new Hometown(){Province="河南", City="周口"}},
+ new Teacher(){Id=1, Name="俺河南周口哩", Hometown=new Hometown(){Province="河南",City="周口"}},
+ new Teacher(){Id=3, Name="上海宝山人", Hometown=new Hometown(){Province="上海",City="宝山"}},
+ new Teacher(){Id=4, Name="上海松江人", Hometown=new Hometown(){Province="上海",City="松江"}},
+ };
+
+ var group = peoples.GroupBy
+ (
+ p=>p.Hometown,
+ (teacher)=> new {Id= teacher.Id,name=teacher.Name, Province=teacher.Hometown.Province},
+ (key, result) => result.Select(q=>q.Province),
+ new HometownEqualityComparer()
+
+ )
+ .ToList();
+
+ var lastItem=group[2].FirstOrDefault();
+ var expected="上海";
+
+ Assert.Equal(expected, lastItem);
}
}
}
\ No newline at end of file