c# - 有没有办法在链接到数组时参数化 Linq 的包含部分
问题描述
有没有办法在链接到数组时参数化 Linq 的包含部分。
我有以下代码。
var query = Data.Where(s => an_array.Contains(s.Name)).Distinct().ToList();
如何参数化 s.Name 以便创建使用 func 或其他东西的方法?
我习惯于使用 (Func<Model, T> param ) 并在输入看起来像 (s=>s.Name) 的 linq 中使用它,但我被卡住了,因为 Contains 部分只是在寻找 (s.Name)
我试过使用 (Func<Model, string> param ) 但这似乎不对。
谢谢!
更新1:
如果我有如下方法,其中 s.Name 会根据用户输入而变化。我怎样才能将它传递给方法。
public void GetFilteredItems()
{
var queryresult = Data.Where(s => an_array.Contains(s.Name)).Distinct().ToList();
}
理想情况下想要这样的东西,所以它可以与任何通过的东西一起使用。
public void GetFilteredItems(Func<?,?> param)
{
var queryresult = Data.Where(s => an_array.Contains(param)).Distinct().ToList();
}
解决方案
这是你想要的吗?
Func<Model, string> p = s => s.Name;
var query = Data.Where(s => an_array.Contains(p(s))).Distinct().ToList();
推荐阅读
- django - 为什么我在提交表单时收到此 AttributeError
- c# - WPF扩展工具包CheckCombobox绑定问题
- json - Flutter application/stream+json Content-Type
- python - 如何从网站上提取所有下载并重复所有选项并使用 Python 和 Selenium 下载每个选项
- vba - 用户窗体中的 DateDiff 公式
- python - 如何使用 Keras 将输出的梯度与输入的输入合并到损失函数中?
- c - C程序中会不会出现静态初始化顺序惨败?
- python - scipy.sparse 的替代方案,用于解决具有稀疏 RHS 的稀疏线性系统
- r - 如何用R替换来自特定单词并且首字母大写的单词
- java - 即使我已经定义了它,Java 也找不到符号