在这里讨论了SO之后,我已经多次读过可变结构是"邪恶"的评论(就像这个问题的答案一样).
C#中可变性和结构的实际问题是什么?
我目前有:
var ids = dt.AsEnumerable().Select(x => (int)x["Id"]).ToList();
Run Code Online (Sandbox Code Playgroud)
但是我还需要检索另一列,名称:int类型的"level".期待输出像:
var<int,int> ids = ....
Run Code Online (Sandbox Code Playgroud) 我有中有两个整数,比如一类A和B:
public class MyClass {
public int A { get; set; }
public int B { get; set; }
...other stuff...
}
Run Code Online (Sandbox Code Playgroud)
我有一个MyCollection类型ObservableCollection<MyClass> 的代码,并且需要在一个列表中一起获得IEnumerable<int>所有值 - 包括A和B- 和- .
我已经弄清楚如何使用相当冗长的代码(为了示例目的而将其简化为仅低于一级,但实际上是3级"from"调用并从嵌套列表中选择值):
IEnumerable<int> intsA=
(from x in MyCollection
select x.A);
IEnumerable<int> intsB =
(from x in MyCollection
select x.B);
IEnumerable<int> allInts = intsA.Concat(intsB);
Run Code Online (Sandbox Code Playgroud)
似乎应该有一种方法同时选择两个变量IEnumerable<int>.显然下面不起作用,但我喜欢这样的东西
IEnumerable<int> allInts = (from x in MyCollection select x.A, x.B);
Run Code Online (Sandbox Code Playgroud)
这样的事情是否比我上面的更优雅?
我在这里找到了如何在匿名类型中选择多个值,但这并没有使它成为相同的IEnumerable,并且仍然需要更多的代码/处理来获取项目. …