为什么我不能让这些扩展工作?

本文关键字:扩展 工作 不能 为什么 | 更新日期: 2023-09-27 18:13:50

我似乎不能让IList.Union<>或IList.Concat<>做任何事情。

下面是代码。为什么会失败呢?

    private void Form1_Load(object sender, EventArgs e)
    {
        DirectoryInfo C = new DirectoryInfo(@"c:'");   // 5 files here
        IList<FileInfo> f = C.GetFiles();
        int a = f.Count;
        DirectoryInfo D = new DirectoryInfo(@"c:'newfolder"); // 2 files here
        IList<FileInfo> g = D.GetFiles();
        int b = g.Count;
        f.Union(g);
        int c = f.Count;  // f remains at 5.  Why are these not unioning?
        f.Concat(g);
        int d = f.Count;   // f remains at 5. Why are these not concating?
    }

"f"在这些情况下都不会改变。如何使Union或Concat发生?

为什么我不能让这些扩展工作?

UnionConcat返回一个新的IEnumerable<T>,您需要将其分配回去:

f = f.Union(g).ToList(); // since the type is IList<FileInfo>