我有下一个 Linq,我想按 c.RegisterId(字符串)分组,以字符串开头。因此,例如,我希望所有下一个示例都属于同一组。
12345
1234500
123450
from c in _companyRepository.GetAll()
group c by c.RegisterId into grpCompany
select grpCompany
我有下一个 Linq,我想按 c.RegisterId(字符串)分组,以字符串开头。因此,例如,我希望所有下一个示例都属于同一组。
12345
1234500
123450
from c in _companyRepository.GetAll()
group c by c.RegisterId into grpCompany
select grpCompany
var res = from c in _companyRepository.GetAll()
group c by c.RegisterId.Length <= 5 ?
c.RegisterId :
c.RegisterId.Substring(0, 5) into grpCompany
select grpCompany
你想对前 5 个字符进行分组,对吗?:-)
我会注意到由 SQL 执行的查询可能不需要长度检查。
SELECT SUBSTRING('Hello', 1, 10000)
始终有效(返回Hello
)。这与会爆炸的.NET不同"Hello".Substring(0, 10000)
,所以可能
var res = from c in _companyRepository.GetAll()
group c by c.RegisterId.Substring(0, 5) into grpCompany
select grpCompany
足够。
您必须决定要考虑基本公共标识符的左侧多少个字母(例如 5 个)。
from c in _companyRepository.GetAll()
group c by c.RegisterId.Substring(0, 5) into grpCompany
select grpCompany
你可以这样做
_companyRepository.GetAll().GroupBy(x=>x.Substring(0,4));