이전에, 내가, 내 앞의 질문에 큰 도움을했다가 감사합니다 vyrp , How do I create and populate a dynamic object using a dynamically built lambda expression동적으로 생성되는 람다 식을 사용하여 동적 개체 IEnumerable <dynamic>을 검색하는 방법은 무엇입니까?
지금 동적 객체를 검색 할 찾고 있어요, 이전과 같이, I 따라서 객체의 속성을 알고하지 않습니다 내가 런타임까지 찾고있는 것. 여기
동적 오브젝트 빌드 코드입니다 : 테스트의 목적 // 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"
나는 (알려진 필드를 검색 할 수 있습니다 s) 즉, PrimaryData, 문제 없음, 아래와 같습니다.
results = results.Where(r => r.PrimaryData.Contains(searchString));
내가 디자인 타임에 필드 PHONENUMBER를 알고있는 경우 다음이 작동
results = results.Where(r => r.PhoneNumber.Contains(searchString));
하지만, 같은 내가하고 싶은 것입니다 :
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