我正在用C#中的LINQ进行工作。部分代码需要在列下进行求和。C#LINQ,求和和类型系统 - 什么是int?键入
SomeTable.Where(CONDITION).Sum(Entity => Entity.IntColumn);
这会返回一个int类型的?而不是int,因为表的列类型也是int?形成。
我的问题是这样的:
什么是int?或双重? e &。类型?
- 将这些类型转换或转换为可用int或double e的最佳实践是什么&。柜台部分?
我正在用C#中的LINQ进行工作。部分代码需要在列下进行求和。C#LINQ,求和和类型系统 - 什么是int?键入
SomeTable.Where(CONDITION).Sum(Entity => Entity.IntColumn);
这会返回一个int类型的?而不是int,因为表的列类型也是int?形成。
我的问题是这样的:
什么是int?或双重? e &。类型?
- 将这些类型转换或转换为可用int或double e的最佳实践是什么&。柜台部分?
int?,double?等是可为空的类型。可为空的类型可以表示基础类型的所有值和一个附加的空值。
可空类型的每个实例有两个公共只读属性:
HasValue
HasValue为bool类型。当变量包含非空值时,它被设置为true。
Value
值与基础类型的属性相同。如果HasValue为true,则Value包含有意义的值。如果HasValue为false,则访问Value将引发InvalidOperationException。
int? x = 10;
if (x.HasValue)
{
System.Console.WriteLine(x.Value);
}
else
{
System.Console.WriteLine("Undefined");
}
你必须选择一个数字类型的一列:
SomeTable.Where(CONDITION).Sum(Entity => Entity.NumericColumn);
然后总和将是数字式的。
int?
是简写Nullable<int>
http://msdn.microsoft.com/en-us/library/1t3y8s4s%28v=VS.80%29.aspx
您可以使用myInt.HasValue
,看看是否有一组值,或者如果它是空,然后myInt.Value
检索INT时,它不是空。
这难道不是犹太使用它作为总和(实体=> Entity.IntColumn),而不是选择(...).SUM()? (因为这是我在做什么) – zellio 2011-02-27 02:29:48
的确,你是对的。 http://msdn.microsoft.com/en-us/library/bb549046.aspx – Cosmin 2011-02-27 02:36:25