2012-02-02 13 views
5

なんらかの理由で私はクエリを変更できないため、C#でこれを行う必要があります。汎用リストからプロパティ/カラムを削除する

私はクラスを持っている:

public class myClass 
{ 
    int id { get; set; } 
    string name { get; set; } 
    DateTime sDate { get; set; } 
    bool status { get; set; } 
} 

私は取得していますデータは、このリストでフェッチされます。今私が望むのは、nullの値を持つリストからそれらのプロパティを削除することです。私は狂ったように聞こえるかもしれませんが、あなたはそれを正しく読みます私は、選択したプロパティだけを持つ別のリストを作成することを考えましたが、上記のプロパティのいずれかはnullです。だから私はこれに基づいて私のリストをフィルタリングする仕組みを工夫しなければならない。

さらに明確にするために、次の例を考えてください。データにジェネリックリスト(lstClass)を取得した後

List<myClass> lstClass = some data source. 

this.Considerのようにテーブルに設定された結果になります。

Id Name Sdate status 
1 a null null 
2 b null null 
3 c null false 

私はいくつかの方法を私のリストには、プロパティを削除した後、このように見せることができをsdate。 作成したい新しいリストには3つのプロパティしかなければなりません。

Id Name status 
1 a null 
2 b null 
3 c false 

Linqを使ってこれを行うことはできますか?

PS:これはプレゼンテーションとは関係ありません。私は私が探しているものではない列を隠すことができないグリッドを持っていません。

+1

あなたの質問は非常に不明です。結果としてどのような種類のリストが表示されているのかは明らかではありません。また、C#コードを有効にし、.NETの命名規則に従うようにすると役に立ちます。 –

+1

これは確かにあなたが持っているデータとは対照的に、与えられたデータをどのように表示するかと関係がありますか? –

+0

私はポストを編集します、私はシナリオを反映するためのダミーの例を用意して命名規則に関して。 – ankur

答えて

15

あなたはMyClassのインスタンスの一般的なリストを持っていると仮定すると、あなただけの必要なプロパティを持つ匿名型を作成することができます。

List<myClass> list = ...; 
var reducedList = list.Select(e => new {e.id, e.name, e.status}).ToList(); 
// note: call to ToList() is optional 

foreach (var item in reducedList) 
{ 
    Console.WriteLine(item.id + " " + item.name + " " + item.status); 
    //note: item does not have a property "sDate" 
} 
+2

+1レスキューする匿名の種類。 –

+2

@ M4Nしかし、私はどの列が空白になるかわからないので、私はハードコードを傾けることができません。匿名クラスで渡されなければならない列名のチャンクを最初に特定する例を提供できますか? – ankur

0

を私はあなたがデータであなたの問題を解決する必要がわからないんだけど、むしろそれはですプレゼンテーションの問題。 どのコントロールに表示しますか? AutoGenerateColumns = TrueでDataGridに表示し、1)各列/プロパティの2)各行のすべてのプロパティ値がnullかどうかを確認し、列の可視性をCollapsedに設定することができます。 自分で列を生成する場合は、さらに簡単です。すべての行に対してコンテンツがnullでない場合は列を追加するだけです。
DBコンテンツが動的な場合は、各行の可視性を、そのプロパティのすべての行がNULLであるかどうかを示すプロパティにバインドしたい場合があります。一般的なソリューションを使用する場合は、Reflectionを使用してプロパティを取得/取得/設定する方法があります。

+0

これは該当しません。 – ankur

+0

解決策を得るために他の人のアドバイスを聞く能力はかなり印象的です。 – GameAlchemist

関連する問題