我有一個對象列表。這些對象中的每一個都有一個Name
屬性,而ObservablePairCollection
只是一個自定義字典,其工作方式與字典完全一樣,具有鍵/值對。查找具有給定屬性值的列表中的對象,然後查找字典值
給定兩個字符串,一個用於名稱和一個用於鍵,我想查找首先匹配給定名稱的對象,然後從該模型的字典中選擇與給定鍵值匹配的pair
。
示例:給定名稱的字符串「model1」和該鍵的「Latitude」,應該找到名稱爲property的對象等於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,但不是一個大問題,如果不行。
如果我理解正確的,你需要的是這樣的:'models.Single(M => m.Name == 「someName」)Fields.Single(F => f.Key ==「Latitude」);' – Nino
@Nino爲什麼會y在字典中搜索密鑰時,是否使用'Single'? – InBetween
@InBetween,你說得對,'First()'是更好的方法。 – Nino