如何使用Linq从列表中的列中删除空格
本文关键字:删除 空格 列表 何使用 Linq | 更新日期: 2023-09-27 18:04:00
我将Json数组作为列表传递给MVC控制器。如何使用linq从列表中的列中删除空格?我的json数组如下所示。
var Refresh = function () {
var Product = [
{
ProductCode: 'P 1',
ProductName: 'P1Name',
ProductType: "T1",
Amount: "2000"
},
{
ProductCode: 'P4',
ProductName: 'P4 Name',
ProductType: "T4",
Amount: "2000"
},
{
ProductCode: 'P2',
ProductName: 'P2Name',
ProductType: "T2",
Amount: "2000"
}
]
在上面的数组中,去掉ProductCode 'P 1'
到'P1'
, ProductName 'P4 Name'
到'P4Name'
之间的空格。
jsonList = jsonList.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList()
空字符串和空格类似于null。如果不是,您可以使用IsNullOrEmpty或s != null。
在LINQ
中使用ForEach
products.ForEach(p=>{
p.Code=p.Code.Replace(" ","");
p.Name=P.Name.Replace(" ","")
})
如果需要遍历所有列并替换它们的值,请尝试以下代码:
Product.ToList().ForEach(i => {
i.GetType().GetProperties().ToList().ForEach( p =>{
p.SetValue(i, p.GetValue(i).ToString().Replace(" ",String.Empty));});
i.GetType().GetFields().ToList().ForEach( p =>{
p.SetValue(i, p.GetValue(i).ToString().Replace(" ",String.Empty));});
});
注意,如果你有一个匿名类型的对象列表,这段代码将无法工作,因为匿名类具有只读属性,不能更改