更新LINQ以添加更多条件

时间:2014-07-29 18:15:07

标签: c# linq

        var rows = File.ReadAllLines(tempPath).Skip(1).Select(c => 
                                          {
                                              string[] args = c.Split('\t');
                                              return new
                                              {
                                                  foo = args[3]
                                              };
                                          }).Distinct();

如何添加where condition,以便它只返回值foo而不是"N/A"的{​​{1}}值?

2 个答案:

答案 0 :(得分:1)

var rows = File.ReadAllLines(tempPath).Skip(1)
                                      .Where(c =>
                                      {
                                           string[] args = c.Split('\t');
                                           return args[3] != "N/A";
                                      })
                                      .Select(c => 
                                      {
                                          string[] args = c.Split('\t');
                                          return new
                                          {
                                              foo = args[3]
                                          };
                                      }).Distinct();

答案 1 :(得分:0)

如果我理解你的问题。

首先,您只选择没有第三个标记为“N / A”或空字符串的行。 其次,你得到所有第三个令牌 第三,你得到结果的不同值 四,你用有效的代币创建你的对象。

这样,当您寻找

时,Distinct将起作用
var rows = File.ReadAllLines(tempPath).Skip(1)  
    .Where(c =>
    {
        string[] args = c.Split('\t');
        return args[3] != "N/A" && args[3] != string.Empty();
    })
    .Select(c => c.Split('\t')[3])
    .Distinct()
    .Select(c => 
    {
        return new
        {
            foo = c
        };
    });