2009-08-25 24 views
1

次のコードスニペット考えてみましょう:私はDataTableの中で唯一の黒い羊を数えたい場合はどうLINQでWHERE句

// get number of sheep in DataTable by counting UID's 
Double n = DataTableContainingSheep.AsEnumerable().Sum(r => (Int32)r["sheepId"]) 

を?選択句をSum()関数に収める方法はありますか?

+0

なぜ羊のリストをcontaning表は「羊」と呼ばれるフィールドが含まれているだろう、なぜそれが数値型のでしょうか?私は、あなたがしたいことの簡単な例を提供したいと思っていますが、簡素化は理にかなっているはずです。 – AnthonyWJones

+0

ポイントを獲得しました。私の質問を更新しました。スタックオーバーフローは、このような振る舞いを奨励しています。自分で自分の投稿を編集してください。 – roosteronacid

答えて

2

それはのようなものでなければなりません:

Double n = 
    DataTableContainingSheep 
     .AsEnumerable() 
     .Where(r => (String)r["color"] == "black") 
     .Sum(r => (Double)r["sheepId"]); 
+0

Thanks Bruno :) – roosteronacid

+0

DataTableは純粋なフィクションです。私が達成したいことを説明するのに役立つサンプルコードをいくつか発明しました。 – roosteronacid

+0

クール!うれしいことはあなたのために役立った。 –