更新LINQ以添加更多条件

本文关键字:条件 添加 LINQ 更新 | 更新日期: 2023-09-27 18:15:22

        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"也不是string.empty ?

更新LINQ以添加更多条件

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

如果我理解正确的话。

首先,只选择没有第三个标记为"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
        };
    });