gpt4 book ai didi

c# - 具有多个 StartsWith 子句的 LINQ 查询?

转载 作者:行者123 更新时间:2023-11-30 18:49:19 25 4
gpt4 key购买 nike

我有一个 LINQ 查询,它的工作原理如下,

var query = DataContext.TenantDataServerTables.Where(p => 
p.Nursing_Home_Section == homeSection &&
p.Tenant_Kana_Last.ToString().StartsWith(@"ア") ||
p.Tenant_Kana_Last.ToString().StartsWith(@"イ") ||
p.Tenant_Kana_Last.ToString().StartsWith(@"ウ") ||
p.Tenant_Kana_Last.ToString().StartsWith(@"エ") ||
p.Tenant_Kana_Last.ToString().StartsWith(@"オ"));
}

有没有办法做这样的事情来简化查询?

char[] array = new char[] { 'ア', 'イ', 'ウ', 'エ', 'オ' };

var query = DataContext.TenantDataServerTables.Where(p =>
p.Nursing_Home_Section == homeSection &&
p.Tenant_Kana_Last.ToString().StartsWith(array));

这只是一个示例,因为还有更多字符需要在 LINQ 查询中检查 StartsWith

最佳答案

您可以在 Any 中使用您的“开始”数组谓词,像这样:

var array = new string[] {@"ア", @"イ", @"ウ", @"エ", @"オ"};
var query = DataContext.TenantDataServerTables.Where(p =>
p.Nursing_Home_Section == homeSection &&
array.Any(prefix => p.Tenant_Kana_Last.ToString().StartsWith(prefix))
);

关于c# - 具有多个 StartsWith 子句的 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41545966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com