以前、私は、私の前の質問に大きな助けを持っていたがありがとうvyrp 、 How do I create and populate a dynamic object using a dynamically built lambda expressionダイナミックに構築されたラムダ式を使用して動的オブジェクトIEnumerable <dynamic>を検索するにはどうすればよいですか?
私は今、動的オブジェクトを検索しているよ、と以前のように、私はこのため、オブジェクトのプロパティを知っている、としません。ランタイムまで私が探しているもの。ここで
が動的オブジェクトのビルドコードです:テストの目的のために // Get list of optional fields
var optFieldList = await _tbList_FieldRepository.GetAsync(lf => lf.ListID == listId && lf.DisplayInList == true);
// order list of optional fields
optFieldList.OrderBy(lf => lf.DisplayOrder);
// Get base Data excluding Inactive if applicable
IEnumerable<tbList_Data> primaryData = await _tbList_DataRepository.GetAsync(ld => ld.ListID == listId && (ld.IsActive == includeInactive ? ld.IsActive : true));
// Build IEnumerable<dynamic> from base results plus any optional fields to be displayed in table
var results = primaryData.Select(pd => {
dynamic result = new System.Dynamic.ExpandoObject();
result.Id = pd.ID;
result.PrimaryData = pd.PrimaryData;
result.DisplayOrder = pd.DisplayOrder;
result.IsActive = pd.IsActive;
foreach (var optField in optFieldList)
{
switch (optField.FieldType.ToLower()) {
case "text":
((IDictionary<string, object>)result).Add(optField.FieldName, pd.tbList_DataText.Where(ld => ld.DataRowID == pd.ID && ld.ListColumnID == optField.ID).Select(ld => ld.DataField).DefaultIfEmpty("").First());
break;
}
}
return result;
});
を、私は2つの動的なフィールドを持っている、「PhoneNumberの」および「FuelType」
私は(知られているフィールドを検索することができます次のように問題はありません。
results = results.Where(r => r.PrimaryData.Contains(searchString));
そして、私は、設計時に
results = results.Where(r => r.PhoneNumber.Contains(searchString));
が、私は何をしたいのフィールドのPhoneNumberを知っていれば、次は動作します、のようなものです:
で終わるresults = results.Where(r => r.PrimaryData.Contains(searchString)
|| foreach(var optField in optFieldList)
{
r.optField.FieldName.Contains(searchString)
})
results = results.Where(r =>
r.PrimaryData.Contains(searchString)
|| r.PhoneNumber.Contains(searchString) ||
r.FuelType.Contains(searchString));
明らかにそのコードは機能しません。私はさまざまな試みを試みましたが、成功しなかったので、私は提案を探しています。おかげ
どういう意味ですか?詳しく教えてください。 – CodingYoshi
コンパイルエラーとは何ですか? – CodingYoshi