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

C# 如何使用Linq从列表中的列中删除空格?,c#,json,asp.net-mvc,linq,C#,Json,Asp.net Mvc,Linq,我将Json数组作为列表传递给MVC控制器。如何使用linq从列表中的列中删除空格?下面给出了我的json数组 var Refresh = function () { var Product = [ { ProductCode: 'P 1', ProductName: 'P1Name', ProductType: "T1", Amount: "2000" },

我将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
'P1'
'P1'
以及从ProductName
'P4 Name'
'P4Name'
删除空格

jsonList  = jsonList.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList()
空字符串和空白类似于null。如果不是,则可以使用IsNullOrEmpty或s!=空


空字符串和空白类似于null。如果不是,则可以使用IsNullOrEmpty或s!=空。

另一种方法是在
LINQ
中使用
ForEach

products.ForEach(p=>{
p.Code=p.Code.Replace(" ","");
p.Name=P.Name.Replace(" ","")
})

另一种方法是在
LINQ

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

注意,如果您有匿名类型的对象列表,此代码将不起作用,因为匿名类具有无法更改的只读属性。

如果您需要遍历所有列并替换其值,请尝试以下代码:

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

请注意,如果您有匿名类型的对象列表,则此代码将不起作用,因为匿名类具有无法更改的只读属性。

您应该先尝试一下,也许他要求查看一些变体。如果初学者的问题写得很清楚,我看不出有任何理由否决它。上面的函数是javascript不??你应该先尝试一下,也许他想看看一些变化。如果初学者的问题写得很清楚,我看不出有任何理由否决它。上面的函数是javascript否??op想要从列值中删除空格而不是删除字段值实际上op根据他的代码给出了错误的要求,他想要从列值中删除空格并从列中指示,因此,向上投票我想从列值中删除空格感谢@sandip patelop想从列值中删除空格而不是删除字段值实际上OP根据他的代码给出了错误的要求,他想从列值中删除空格并从列中指示,因此,我想删除列值中的空格。谢谢@sandip,因为列表是对象。那么,是否可以动态查找所有列并替换空格?@Pradeep,若要获取字段列表,请尝试以下操作:
var fields=Product[0]。GetType().GetProperties().ToList()。注意:如果数组为空,此代码将导致异常。实际上,该列表是对象。那么,是否可以动态查找所有列并替换空格?@Pradeep,若要获取字段列表,请尝试以下操作:
var fields=Product[0]。GetType().GetProperties().ToList()。注意:如果数组为空,此代码将导致异常。