2012-03-26 9 views
2

私は二つのリストからlinq文を使用してクエリを実行する方法は?

Id 
Date 
Status 
text 

のような特定の性質を必要とする二つのオブジェクト

List<Report> 
List<Newsletter> 

を持っています。これらのリストをマージし、linq文を使用してクエリを実行して、特定のプロパティを別のリストとして返す方法はありますか? 助けてください。

Report 
{ 
    int id, 
    datetime reportDate, 
    enum Status, 
    string text 
}; 

Newsletter 
{ 
    int id, 
    datetime newsletterDate, 
    string Status, 
    string text 
}; 
+1

それらを結合する方法はありますか?彼らは共通の財産を共有していますか? – Aliostad

+0

最も興味深い点。今のところ答えはYESです。これは可能です - 理論的に。私は彼らがシミラ構造を持っているかどうかも分からないので、ここでどうやってやるのか分かりません。 – TomTom

+0

CreatedByプロパティは両方とも共通しています – NewBie

答えて

6
var items = 
     reportList.Select(x => new { x.Id, x.Date, x.Status, x.text }) 
     .Concat(
     newsList.Select(x => new { x.Id, x.Date, x.Status, x.text })); 

更新、ステータスのプロパティ等しくする:

var items = 
     reportList.Select(x => new { x.Id, x.Date, Status = x.Status.ToString(), x.text }) 
     .Concat(
     newsList.Select(x => new { x.Id, x.Date, Status, x.text })); 
+0

両方のオブジェクトのプロパティStatusに多少の不一致があります。私はそれを文字列に変換する必要があります。私は匿名のオブジェクト内でそれをどうやって行うことができますか? – NewBie

+0

注:重複を削除する必要がないように見えるため、連合で連合してください。 –

+0

@NewBie - 更新を参照してください。 –

4

リストの両方が共通の列が含まれていることを想定すると、それらの間の結合を適用する

あなたはaply参加して、以下のようにデータを取得することができます..:次のようにオブジェクトの

構造であります

var data = form a in lista 
join b in listb on 
a.id equals b.id 
select new {id=a.id, Date= b.Date, Status=a.Sttus, text=b.Text}; 

次の2つのテーブルユーザとuserclient

間の結合の画像であります

チェック記事全文:Case 4 - JOINING TWO TABLE

enter image description here

4
var reps = reposts.Select(r => new { Id = r.Id, Date = r.Date, Status = r.Status, Text = r.Text}); 
var news = newsletters.Select(n => new { Id = r.Id, Date = r.Date, Status = r.Status, Text = r.Text}); 
var result = reps.Union(news); 
3
var query = reports.Select(x => new { x.Id, x.Date, Status = Enum.GetName(typeof(Status), x.Status), x.Text }) 
.Union(news.Select(x => new { x.Id, x.Date, x.Status, x.Text })); 
+0

これは上記の場合には機能しません。プロパティーの型の不一致の原因をエラーに戻しています。 – NewBie

+0

「無効な匿名型宣言子」というエラーが表示されます – NewBie

+0

あなたとHenkの回答は同じです。私はもう一つ疑いがある。セレクタ部分でプロパティ名が一致する必要がありますか?私のID名のプロパティ名は、両方のオブジェクトで異なります。タイプは同じです。 – NewBie

関連する問題