私はオブジェクトのリストを持っています。これらのオブジェクトのそれぞれはName
プロパティを持ち、ObservablePairCollection
はちょうど辞書のように機能するカスタム辞書ですが、キーと値のペアを持っています。指定されたプロパティ値を持つリスト内のオブジェクトを検索し、辞書値を見つけよう
名前とキーの2つの文字列を指定すると、与えられた名前に最初に一致するオブジェクトを探し、そのモデルの辞書から特定のキー値に一致するpair
を選択します。
例:nameの文字列「model1」とキーの「Latitude」を指定すると、nameプロパティのオブジェクトはmodel1
になります。オブジェクトの辞書のキーと値のペアは、キーはLatitude
と同じです。
現在、私は使用してName
と一致する最初の部分を行うことができます。
private ObservableCollection<ModelBase> models;
//add objects to models
string stringToFind = "model1";
models.Single(m => m.Name == stringToFind);
だから、これはName
プロパティはmodel1
に等しいだオブジェクトを返します。
私はキーと値のペアを取得するために使用する正しいステートメントを見つけることができません。
private ObservablePairCollection<string, string> _fields = new ObservablePairCollection<string, string>();
public ObservablePairCollection<string, string> Fields
{
get { return _fields; }
set { _fields = value; OnPropertyChanged("Fields"); }
}
private string _name;
public string Name
{
get { return _name; }
protected set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
私は可能な場合はLINQを使用するようにしたいのですが、ない巨大な契約でない場合:
ここでは、クラスの相対的な部分です。
:あなたは、単に
Fields
proyertyをフィルタリングする必要があります。 'models.Single(M => m.Name == "someNameという")Fields.Single(F => f.Key == "Latitude"); ' – Nino@Ninoなぜyですか?辞書の中のキーを検索するときに 'Single'を使用することはありますか? – InBetween
@InBetween、あなたが正しいです、 'First()'が良いアプローチです。 – Nino