我正在用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