- PR -

LINQでLISTを使用した比較

1
投稿者投稿内容
OzzyOZ
会議室デビュー日: 2008/08/20
投稿数: 8
投稿日時: 2008-08-26 15:11
お世話になっております。

悩んでいるのでご存知の方がいらっしゃいましたらご教授願います。

やりたいことは、hogeAとhogeBが同じデータを抽出するというものです。
言葉だと上手く説明できないので例を挙げます。

EX)hogeAとhogeBが1,1、2,2のものを抽出したい

hogeA|hogeB|hogeC
1|1|aaaaa
1|2|bbbbb
2|1|ccccc
2|2|ddddd

期待する結果は、
hogeA|hogeB|hogeC
1|1|aaaaa
2|2|ddddd
です。

項目がひとつの場合であれば、List型の変数に条件を格納して
var hoge = from hh in hogeT
where hogeAList.Contains(hh.hogeA)
select hh
という形で取得ができるかと思うのですが...

補足として、例では1,1、2,2としましたが、実際は可変長です。
※2次元配列を使えばいいのか、LISTを使えばいいのかも分からない状態です...。
OzzyOZ
会議室デビュー日: 2008/08/20
投稿数: 8
投稿日時: 2008-08-26 16:17
自己レスです。

2つの項目を結合して、List<string>を使用して解決しました。

EX)
List<string> hogeAList = new List<string>();
hogeList.Add("1".PadLeft(5,'0') + "1".PadLeft(2,'0'));
・・・(略)・・・
var hoge = from hh in hogeT
where hogeAList.Contains(hh.hogeA.ToString().PadLeft(5,'0') +
hh.HogeB.ToString().PadLeft(2,'0'))
select hh

1

スキルアップ/キャリアアップ(JOB@IT)