如何使用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'之间的空格。

如何使用Linq从列表中的列中删除空格

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));});
});

注意,如果你有一个匿名类型的对象列表,这段代码将无法工作,因为匿名类具有只读属性,不能更改