DBから、SELECTした結果のものが変数Zに格納されております。
そして、この変数Zをブレークポイントを使用して中身をvisualstudioC#で
確認すると以下のような構造をしております。
z|Cont=9
[0] |Count=3 //zにカーソルを合わせた結果
[1] |Count=3
[2] |Count=3
[3] |Count=3
[4] |Count=3
[5] |Count=3
[6] |Count=3
[7] |Count=3
[8] |Count=3
[0] |{[NO1,AAA]} //[0]にカーソルを合わせた結果 [1] |{[NO2,DDD]} [2] |{[NUM,500]}
DB(Table)は下記のようなイメージです。
NO1,NO2,NUM
AAA,DDD,500
AAA,EEE,600
AAA,FFF,400
BBB,GGG,200
BBB,HHH,300
BBB,III,900
CCC,JJJ,700
CCC,KKK,500
CCC,LLL,900
DBから9行分のデータをSELECTしてます。列名(項目)はNO1,NO2,NUMの三つです。
NO1とNO2は、UNIQとなっております。(他の行との重複はない)
また、DBから取得した変数の型はXMLManagerです。XMLManager xmlのようにxmlという変数を定義します。 ただ、その後、z = new List<DICTIONARY>();とした変数zを生成し、 z = xml.dataRows;で代入しております。
ここからが本題なのですが、NO1がAAAとなっている行の中で、最大NUMをLINQを使用して瞬時に抽出する方法を教えていただけますでしょうか?
上記テーブルで言いますと、600を抽出することになります。
近い方法として、NO1がAAA,NO2がEEEのときのNUM(600)を変数xに格納するときのやり方は下記の通りでうまくいきました。
var getItem = z.Where((item) => item["NO1"] == "AAA" && item["NO2"] == "EEE").FirstOrDefault();
string x = getItem["NUM"];
上記を応用すればいいと思うのですが、いまいち分かりません。
恐れ入りますが、ご回答の程、お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。