2016-05-13 49 views
-1

下面是小代碼片斷,我正在閱讀csv文件並首先跳過,因爲第一行有字段名稱。所以我如何跳過或不根據條件跳過線。假設國家代碼是美國或MX那麼第一行將不會被跳過,但如果國家代碼是GB或FR那麼第一行就會跳過。建議我在下面的代碼中添加什麼,因爲第一行跳過將取決於條件。C#如何跳過或不有條件跳過

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(); 
     } 
    } 
+0

哪條線要有條件地跳過?第一行?國家代碼從哪裏來?每條線都不一樣嗎? –

+0

你的問題有點不清楚。你想跳過第一行,因爲它只包含字段名稱?所以沒有條件......你不會在你最近的「選擇」中確定一個國家代碼。從哪裏來? –

回答

6

一個ternary expression會做

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

優雅。我喜歡 –