如何在linq c#中删除字符串末尾的字符
how to remove a character at the end of a string in linq c#
我有以下 LINQ 查询;我想删除字符串末尾可用的点字符
var hatoList = (from L in db.vHatoList select L.HatoFullName.Trim('.')).ToList();
您正在使用 linq to sql
并且数据库不理解 TrimEnd
或 Trim
。
所以首先你需要在内存中加载数据,然后使用TrimEnd
方法。
var hatoList = (from L in db.vHatoList select L.HatoFullName).ToList().
Select(t=>t.TrimEnd('.'));
您目前正在尝试在数据库中执行查询。我们不知道您使用的是什么数据库技术,因此很难知道是否有某种方法可以使它实际上发生在数据库中,但在内存中进行可能是最简单的(假设它不会改变将返回多少记录)。 AsEnumerable()
方法仅用于将编译时类型更改为 IEnumerable<T>
(而不是 IQueryable<T>
),强制查询的其余部分在 .NET 代码中而不是在数据库中进行计算:
var hatoList = db.vHatoList
.AsEnumerable()
.Select(entry => entry.HatoFullName.TrimEnd('.'))
.ToList();
(我还将调用从 Trim
更改为 TrimEnd
以避免删除字符串开头的句点。)
我有以下 LINQ 查询;我想删除字符串末尾可用的点字符
var hatoList = (from L in db.vHatoList select L.HatoFullName.Trim('.')).ToList();
您正在使用 linq to sql
并且数据库不理解 TrimEnd
或 Trim
。
所以首先你需要在内存中加载数据,然后使用TrimEnd
方法。
var hatoList = (from L in db.vHatoList select L.HatoFullName).ToList().
Select(t=>t.TrimEnd('.'));
您目前正在尝试在数据库中执行查询。我们不知道您使用的是什么数据库技术,因此很难知道是否有某种方法可以使它实际上发生在数据库中,但在内存中进行可能是最简单的(假设它不会改变将返回多少记录)。 AsEnumerable()
方法仅用于将编译时类型更改为 IEnumerable<T>
(而不是 IQueryable<T>
),强制查询的其余部分在 .NET 代码中而不是在数据库中进行计算:
var hatoList = db.vHatoList
.AsEnumerable()
.Select(entry => entry.HatoFullName.TrimEnd('.'))
.ToList();
(我还将调用从 Trim
更改为 TrimEnd
以避免删除字符串开头的句点。)