关于IEnumerable使用Append追加元素的一个小坑
电脑版发表于:2020/12/8 13:18

在使用IEnumerable的Append方法追加元素时:
class Program {
static void Main(string[] args) {
//
// 摘要:
// Appends a value to the end of the sequence.
//
// 参数:
// source:
// A sequence of values.
//
// element:
// The value to append to source.
//
// 类型参数:
// TSource:
// The type of the elements of source.
//
// 返回结果:
// A new sequence that ends with element.
//
// 异常:
// T:System.ArgumentNullException:
// source is null.
//public static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element);
IEnumerable<People> peoples = new List<People>();
People people = new People() { Id = 1, Name = "黄大仙1" };
// 直接添加:peoples中呈现出来的效果是没有将people添加进去
peoples.Append<People>(people);
// 接收添加后返回的结果:此时,result中可以看到包含了添加的people
var result = peoples.Append<People>(people);
// 总结:通过Append函数的摘要可以看出:
// Appends a value to the end of the sequence.(添加一个值到序列的结尾)
// A new sequence that ends with element.(返回一个结尾元素包含添加对象的新的序列)
// 所以我们需要通过一个新的对象来接收返回的新序列
Console.ReadKey();
}
}
public class People {
public int Id { get; set; }
public String Name { get; set; }
}