Apologies, If i didn't make it clear. I agree to your point no 1, I am retrieving all account entity prior to sort.
More explanation about issue.
duplicateParameterResponse.Entities[0]["field"] = "name";
duplicateParameterResponse.Entities[0]["order"] = "asc"
duplicateParameterResponse.Entities[1]["field"] = "address1_city";
duplicateParameterResponse.Entities[1]["order"] = "asc"
duplicateParameterResponse.Entities[2]["field"] = "membernumber"
duplicateParameterResponse.Entities[2]["order"] = "desc"
"name", "address1_city" and "membernumber" are nullable data type fields defined in Account, Contact and Lead entity. I want to make it generic solution hence using late bound entity rather than early bound entity.
For current scenario consider Account entity only.
Now what I want to achieve is,
Foreach "field" and "order" defined in duplicateParameterResponse.Entities
For first iteration,
var someExpression = accountEntities.OrderBy(p => !p.Contains((string) duplicateParameter[0]["field"])).
ThenBy(p => !p.Contains((string) duplicateParameter[0]["field"])
? null : (string) duplicateParameter[0]["field"]);
For subsequent iteration,
someExpression = someExpression.ThenBy(p => !p.Contains((string) duplicateParameter[index]["field"])).
ThenBy(p => !p.Contains((string) duplicateParameter[index]["field"])
? null : (string) duplicateParameter[index]["field"])
Expression generated through Foreach loop should be executed only once which will give sorted list of account entities.
I am not able to generate expression which will have sorting on multiple fields.