【问题标题】:How to remove spaces from a column in a list using Linq?如何使用 Linq 从列表中的列中删除空格?
【发布时间】:2016-08-26 05:56:44
【问题描述】:

我将 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' 的空格。

【问题讨论】:

  • 你应该先尝试一下
  • 也许他是想看看一些变化。如果写得很清楚,我看不出有任何理由拒绝初学者的问题。
  • 以上函数是javascript没有??

标签: c# json asp.net-mvc linq


【解决方案1】:
jsonList  = jsonList.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList()

空字符串和空格就像 null。如果不是,您可以使用 IsNullOrEmpty 或 s != null。

【讨论】:

  • op 希望从列值中删除空格而不是删除字段值
  • 实际上OP根据他的代码给出了错误的要求,他想从列值中删除空格并从列中指示,所以投票它
  • 我想从列值中删除空格
  • 谢谢@sandip-patel
【解决方案2】:

LINQ 中使用ForEach 的另一种方式

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

【讨论】:

  • 实际上该列表是 对象。那么是否可以动态查找所有列并替换空间?
  • @Pradeep,要获取字段列表,请尝试以下操作:var Fields = Product[0].GetType().GetProperties().ToList();。请注意,如果数组为空,此代码将导致异常。
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2014-04-10
    • 1970-01-01
    • 2015-09-20
    • 2021-07-11
    相关资源
    最近更新 更多