前段时间,我一直在从事一个非常扭曲的项目——我只能在单个范围内编写代码,然后将其放入 C# 函数中(由另一个模块)。
我只能使用之前声明的命名空间(我对它们没有影响),并且只能使用我工作范围内的变量。因此,我无法更改标题和包含的库。
当我想对泛型集合进行操作时,问题就出现了——我既不能使用 lambda 表达式,也不能使用 LINQ——我根本无法放置using System.Linq;
,因为我无法访问文件头。
我只需要做一件简单的事情,而且不用 LINQ 或 lambda 也很容易管理。但是,在那之后我想知道如果我必须对 IEnumerable 使用一些更复杂的操作会发生什么。由此,我的问题出现了:
是否可以在不更改文件头和添加新命名空间的情况下使用 LINQ 或 lambdas?
假设我们有一个List<int> _Numbers = new List<int>();
. 让它充满一些数字。现在我想从中选择所有偶数。
在using System.Linq;
标题中,解决方案很明显:
List<int> _NewList = _Numbers.Where(n => n % 2 == 0).ToList();
或者
List<int> _NewList = (from _Number in _Numbers where _Number % 2 == 0 select _Number).ToList();
但是如果不包含 LINQ,我该如何实现呢?我的第一个猜测是:
List<int> _NewList = System.Linq. // ??? What to add here?
我知道这个问题相当奇特,这样走很不寻常,但我只是好奇,我没有找到关于这个案例的信息。