none
使用LINQ為DataTable加上流水號 RRS feed

  • 問題

  • 客戶有一隻程式,要求我們送DataTable給他們(你沒看錯,是送DataTable,不是XML或JSON)

    然後他們會把結果值再送回來

     

    原本這段的程式碼是

    取出要送的資料為DataTable

    利用DataTable.Columns.Add()加上一欄Seq

    然後用 for 迴圈去填入 Seq 為流水號做為新的ID

     

    這段加上流水號我想改成LINQ處理,但是我這樣寫卻不行

    var dt=DataTable.AsEnumerable().Select(s => new { s, seq=0});

    int i=1;

    foreach (var dr in dt) { dr.seq=i;i++;}

    因為最後的結果會是整個 DataTable 跟 seq 欄位的集合

    我把Select改掉 .Select(s => new { s.*, seq=0});

    不過LINQ不吃..唯一的辦法似乎是全部展開...不過約有50個欄位,全部展開的話程式碼會變得很醜

    請問有沒有簡單加上流水號的方式啊?

    2011年6月3日 上午 03:27

解答

所有回覆