static void Main(string[] args) { int[] array = new int[] { 102, 12, 23, 412, 22, 14, 45, 65, 33 }; var obj = from item in array orderby item ascending group item by item / 100; foreach (var item in obj) { Console.WriteLine(item.ToString()); } return; }
無聊隨便寫Linq玩,突然發現這個問題,請看上面這段代碼,理想狀態下,obj結果應該是:
{0:[12,14,22,23,33,45,65]
1:[102]
4:[412]}
實際結果(請用監視查看,最后多出的0打印不出來的):
{0:[12,14,22,23,33,45,65,0] //看好 8位 = 23 ,不足補0
1:[102] //20
4:[412]} //20
也就是說0分組最后多個0,但是這個0不在原數組array中定義,它是怎么出現的?
后來修改數組int[] array = new int[] { 102, 12, 23, 412, 22,111,156, 14, 45, 65, 33,88 };
public static void Main(string[] args) { int[] array = new int[] { 102, 12, 23, 412, 22,111,156, 14, 45, 65, 33,88 }; var obj = from item in array orderby item ascending group item by item / 100; foreach (var item in obj) { foreach (var t in item) { Console.Write(t + "/t"); } Console.WriteLine(); } return; }
這次測試結果是(請用監視查看,1分組末尾多個0打印不出來的):
{0:[12,14,22,23,33,45,65,88] //8位 = 23
1:[102,111,156,0] // 4位 = 22,不足補0
4:[412]} //20
于是,猜測Linq 查詢結果 可能遵循 2 º,2¹,2 ²,......增長計算
新聞熱點
疑難解答