C#如何跳过或不跳过有条件的跳线

时间:2016-05-13 14:21:39

标签: c# linq

下面是一个小代码片段,我正在读取csv文件并首先跳过,因为第一行有字段名称。所以我怎么能跳过或不跳过基于条件的线。假设国家/地区代码为US或MX ,则不会跳过第一行,但如果国家/地区代码为GB或FR ,则第一行将被跳过。建议我在下面的代码中添加什么,因此第一行跳过将取决于条件。

public List<PhoneData> GetPhoneData(string strFileName)
        {
            return File.ReadLines(strFileName)
                .Skip(1)
                .Where(s => s != "")
                .Select(s => s.Split(new[] { ',' }))
                .Select(a => new PhoneData
                {
                    Call_Start = DateTime.Parse( a[0]),
                    call_duration = TimeSpan.Parse(a[1]),
                    Ring_duration = int.Parse(a[2]),
                    direction = a[4],
                    Is_Internal =Convert.ToInt32( a[8]),
                    continuation = int.Parse( a[10]),
                    party1name = a[13],
                    Caller = a[3],
                    Park_Time = Convert.ToInt32(a[16]),
                    Called_number = a[5]
                })
                .ToList();
        }
    }

1 个答案:

答案 0 :(得分:6)

ternary expression会这样做

return File.ReadLines(strFileName)
            .Skip(someCondition ? 0 : 1)