Tôi có hai câu hỏi:Thực hiện nội bộ AsEnumerable() trong LINQ
Câu hỏi 1 Bối cảnh: tôi nhận thấy khi nhìn vào việc thực hiện 'AsEnumerable()' phương pháp trong LINQ từ Microsoft, đó là:
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
return source;
}
Câu hỏi 1: tôi đã chờ đợi một số loại đúc hoặc một cái gì đó ở đây, nhưng nó chỉ đơn giản trả về giá trị nó đã được thông qua. Cái này hoạt động ra sao ?
Câu hỏi 2/3 Bối cảnh: Tôi đã cố gắng hiểu Hiệp phương sai, contravariance và bất biến. Tôi nghĩ rằng, tôi có một sự hiểu biết mơ hồ rằng 'trong' và 'ra' từ khóa xác định hành vi đa hình khi gán một loại phụ cho một loại cha mẹ.
Câu hỏi 2: Tôi biết từ việc đọc mà IEnumerable là hiệp biến, và Danh mục là bất biến thì tại sao điều này không thể thực hiện:
List<char> content = "testString".AsEnumerable();
Câu hỏi 3:
Nếu IList thực hiện IEnumerable thì tại sao điều này là không thể:
IEnumerable<char> content1 = "testString";
IList<char> content2 = content1;
Xin hãy giúp tôi hiểu, cảm ơn trong một dvance.
AsEnumerable() buộc truy vấn để thực hiện ngay lập tức trong các nhà cung cấp LINQ khác như LINQ to SQL hoặc Entity Framework. Nó có thể được thêm vào LINQ to Objects cho đầy đủ. –