在LINQ C#中修剪字符串

时间:2013-10-02 13:44:50

标签: c# linq

我喜欢剪裁后面的字符串,但是有一个错误:

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        c.Client_Name.Trim(),
        c.Client_Code,
    });

日Thnx

5 个答案:

答案 0 :(得分:7)

您需要提供匿名类型对象属性的名称

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        Name = c.Client_Name.Trim(),
        Client_Code = c.Client_Code
    };

答案 1 :(得分:3)

如果未在匿名类型属性中提供名称,它将尝试使用其分配的值的属性名称。当您在属性上调用方法时,它无法解析名称。您需要指定它:

var getClients = (from c in GeneralUtillities)
orderby c.Client_Name
select new
{
    Client_Name = c.Client_Name.Trim(),
    c.Client_Code,
});

答案 2 :(得分:2)

我看到3件事 - 因为你没有指明错误我不确定真正的问题是什么,但这里有一些猜测:

  1. 您在GeneralUtillities末尾有一个结束语,这是语法错误
  2. 您没有为匿名类型
  3. 中的第一个字段指定名称
  4. Linq-to-Entities可能不支持使用Trim
  5. 这是另一种选择:

    var getClients = (from c in GeneralUtillities
        orderby c.Client_Name)
        .AsEnumerable()
        .Select (c =>  new
            {
                Client_Name = c.Client_Name.Trim(),
                Client_Code = c.Client_Code,  // for readability, not necessary
            });
    

答案 3 :(得分:0)

必须在编译时知道匿名类型的属性名称。

var getClients = (from c in GeneralUtillities)
    orderby c.Client_Name
    select new
    {
        Name= c.Client_Name.Trim(),
        Code = c.Client_Code,
    });

答案 4 :(得分:-1)

var getClients =
    (from c in GeneralUtillities.a.data
    orderby c.Client_Name
    select new
    {
        c.ID_Client,
        c.Client_Name,
    });

这是正确的代码,因此问题是修剪客户端名称,使其在开始和结束时没有空格。