|
|
@ -13,6 +13,7 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
public class CreateTest
|
|
|
|
public class CreateTest
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
#region Empty
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Empty 返回指定类型的空集,没有任何元素的集合。
|
|
|
|
/// Empty 返回指定类型的空集,没有任何元素的集合。
|
|
|
|
/// Enumerable的静态方法,常用来做初始种子集合。
|
|
|
|
/// Enumerable的静态方法,常用来做初始种子集合。
|
|
|
@ -37,6 +38,9 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
Assert.IsType<Person[]>(ini);
|
|
|
|
Assert.IsType<Person[]>(ini);
|
|
|
|
Assert.Empty(ini);
|
|
|
|
Assert.Empty(ini);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region DefaultIfEmpty
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// DefaultIfEmpty
|
|
|
|
/// DefaultIfEmpty
|
|
|
@ -50,6 +54,7 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
Assert.Single(defaultValue);
|
|
|
|
Assert.Single(defaultValue);
|
|
|
|
Assert.Equal(default(int), defaultValue.First());
|
|
|
|
Assert.Equal(default(int), defaultValue.First());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// 数据源为Null时,抛出异常。
|
|
|
|
/// 数据源为Null时,抛出异常。
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
@ -61,6 +66,9 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
Assert.Single(defaultValue);
|
|
|
|
Assert.Single(defaultValue);
|
|
|
|
Assert.Equal(default(Person), defaultValue.First());
|
|
|
|
Assert.Equal(default(Person), defaultValue.First());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region Range
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Range:生成指定范围的整数序列
|
|
|
|
/// Range:生成指定范围的整数序列
|
|
|
@ -86,7 +94,8 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
//生成100项值均为"test@163.com"的字符串序列
|
|
|
|
//生成100项值均为"test@163.com"的字符串序列
|
|
|
|
var values = Enumerable.Repeat("test@163.com", 100);
|
|
|
|
var values = Enumerable.Repeat("test@163.com", 100);
|
|
|
|
|
|
|
|
|
|
|
|
Array.ForEach(values.ToArray(), (emai) => {
|
|
|
|
Array.ForEach(values.ToArray(), (emai) =>
|
|
|
|
|
|
|
|
{
|
|
|
|
Assert.Equal("test@163.com", emai);
|
|
|
|
Assert.Equal("test@163.com", emai);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -98,8 +107,8 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
public void Repeat_TestData_Test()
|
|
|
|
public void Repeat_TestData_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//生成测试数据:生成了有100项的一个序列,这100项均是对同一个对象的引用,而不是100个对象。
|
|
|
|
//生成测试数据:生成了有100项的一个序列,这100项均是对同一个对象的引用,而不是100个对象。
|
|
|
|
|
|
|
|
|
|
|
|
Random rdm = new Random(DateTime.Now.Ticks.GetHashCode());
|
|
|
|
Random rdm = new Random(DateTime.Now.Ticks.GetHashCode());
|
|
|
|
|
|
|
|
|
|
|
|
//虽然生成时,用了随机数,但是因对象只生成了一次,其它均是这个对象的浅拷贝,所以100个对象,完全相同:100个对同一对象的引用。
|
|
|
|
//虽然生成时,用了随机数,但是因对象只生成了一次,其它均是这个对象的浅拷贝,所以100个对象,完全相同:100个对同一对象的引用。
|
|
|
|
var persons = Enumerable.Repeat(new Person()
|
|
|
|
var persons = Enumerable.Repeat(new Person()
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -117,6 +126,10 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region SequenceEqual
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// SequenceEqual: 比较源和目标序列,返回一个bool值,指示所含元素是否相同。
|
|
|
|
/// SequenceEqual: 比较源和目标序列,返回一个bool值,指示所含元素是否相同。
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
@ -126,7 +139,6 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
Person p = new Person() { Id = 1, Name = "王小明", Age = 20 };
|
|
|
|
Person p = new Person() { Id = 1, Name = "王小明", Age = 20 };
|
|
|
|
|
|
|
|
|
|
|
|
var s1 = Enumerable.Repeat(p, 100);
|
|
|
|
var s1 = Enumerable.Repeat(p, 100);
|
|
|
|
|
|
|
|
|
|
|
|
var s2 = Enumerable.Repeat(p, 100);
|
|
|
|
var s2 = Enumerable.Repeat(p, 100);
|
|
|
|
|
|
|
|
|
|
|
|
Assert.True(s1.SequenceEqual(s2));
|
|
|
|
Assert.True(s1.SequenceEqual(s2));
|
|
|
@ -143,5 +155,6 @@ namespace LinqStudy.Test.LinqToObject
|
|
|
|
|
|
|
|
|
|
|
|
Assert.False(s1.SequenceEqual(s2));
|
|
|
|
Assert.False(s1.SequenceEqual(s2));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|