C# 动态指定lambda函数参数

C# 动态指定lambda函数参数,c#,.net,c#-4.0,.net-4.0,lambda,C#,.net,C# 4.0,.net 4.0,Lambda,假设我有以下代码行: context.Load(itemCollection, item => item.Include(i => i["Title"], i => i["Name"])); 是否有任何方法可以动态指定项的参数。包括函数,而不是像上面那样硬编码 理想情况下,我希望允许用户选择他们想要检索对象的属性,如标题、名称、描述等 仅供参考,这是ClientContext.Load函数。此函数来自Microsoft.SharePoint.Client.dll 看看你的答案

假设我有以下代码行:

context.Load(itemCollection, item => item.Include(i => i["Title"], i => i["Name"]));
是否有任何方法可以动态指定项的参数。包括函数,而不是像上面那样硬编码

理想情况下,我希望允许用户选择他们想要检索对象的属性,如标题、名称、描述等

仅供参考,这是ClientContext.Load函数。此函数来自Microsoft.SharePoint.Client.dll


看看你的答案。
我在创建动态where子句时遇到了类似的问题,这就是我解决问题的方法。

我没有必要的设置来测试它,但是类似的东西可以工作吗

String[] keys = ...;
context.Load(   itemCollection
              , item => item
                        .Include(keys
                        .Select(key => { i => i[key] })
                        .ToArray()
            );

使用以下syntaxt在JavaScript中工作,但尚未在C中测试:

context.load(this.list, 'Include(Title, Name)');
“IncludeTitle,Name”是一个字符串,更容易根据用户输入生成


this.list是指以前加载的sharepoint列表。

否。我们不知道用户要检索多少密钥属性。上下文的签名是什么。Load和item.Include函数?用您请求的信息更新了我的问题。是的,我一直为MS CRM库创建类似的函数。您希望研究public void MyMethodFunc表达式,其中t:扩展表达式中所需的类型。无论如何,在Func上搜索更多示例
context.load(this.list, 'Include(Title, Name)');