2017-10-18 105 views
0

我有一個CSV導入對象的LINQ集團按行成

obj_cellelist = (from line in File.ReadAllLines(pathCelle) 
          let columns = line.Split(stringSeparators, StringSplitOptions.None) 
          select new obj_celle() 
          {  
           Cgi = columns[0], 
           zonaNis = columns[0].Length > 8 ? int.Parse(columns[0].Substring(5, 3)) : -1, 
           codice_Sarf = columns[0].Length > 11 ? int.Parse(columns[0].Substring(8, 4)) : -1, 
           IDCella = columns[1], 
           Operatore = columns[2], 
           Void = columns[3], 
           Via = columns[4].Replace("''", "'"), 
           Comune = columns[5].Replace("�", "A'"), 
           Provincia = columns[6], 
           Regione = provincie.Keys.Contains(columns[6]) ? provincie[columns[6]] : "", 
           Nazione = columns[7], 
           Latitudine = decimal.Parse(columns[8].Replace('.', ',')) , 
           Longitudine = decimal.Parse(columns[9].Replace('.', ',')) , 
           Void1 = columns[10], 
           Azimuth = columns[11].Length > 0 ? int.Parse(columns[11]) : -1 }).ToList(); 

我需要通過Longitudine和Latitudine組,並得到所有不同的方位行。對於每個緯度,縱向,最多有三個不同的方位角。 除了cgi,其他值都是一樣的,我不需要。 新對象應包含 zonaNis,codice_Sarf,IDCella,算符,空隙,VIA,拱廊,省報,大區,Nazione,Latitudine,Longitudine,Void1,Azimuth1,Azimuth2,Azimuth3

實施例:

861 ## #3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ###意大利### 43.74619685 ### 11.71866206 ###### 110

862 ### 3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ### ITALY ### 43.74619685 ### 11.71866206 ###### 240

864 ### 3OF034AA ## #VODAFONE ###### STRADA TEST ### NOLA ### AR ###意大利### 43.74619685 ### 11.71866206 ###### 110

865 ### 3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ###意大利### 43.74619685 ## #11.71866206 ###### 240

867 ### 3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ### ITALY ### 43.74619685 ### 11.71866206 ###### 110

868 ### 3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ### ITALY ### 43.74619685 ### 11.71866206 ## ####在對象240

輸出應該

3OF034AA ### VODAFONE ###### STRADA TEST ### NOLA ### AR ###意大利### 43.74619685 ### 11.71866206 ###### 110 ### 240

+0

請[mcve]。以名稱,緯度,長度做一個小例子,並顯示使用預期的結果。他們以你計算的方式。 –

+0

因爲目前還不清楚。因爲方位在點之間。 –

+0

您是否想將一個Csv轉換爲其他Csv格式? –

回答

0
obj_cellelist 
    .GroupBy(p => new { Lat = p.Latitudine, Long = p.Longitudine }) 
    .Select(g => new { place = g.Key, azimuths = g.Select(a => a.Azimuth).Disctinct() }) 
    .ToList(); 

這將產生你的對象列表具有兩個屬性。第一個屬性的類型是obj_celle,另一個屬性是不同方位角的列表。

+0

不工作。我需要新的zonaNis,codice_Sarf,IDCella,Operatore,Void,Via,Comune,Provincia,Regione,Nazione,Latitudine,Longitudine,Void1,Azimuth1,Azimuth2,Azimuth3 –

+0

您擁有屬性所有的這些值,方位角屬性方位角作爲列表。有多少個方位角可以存在,至關重要的是它們全部顯示爲單獨列而不是列表的單個屬性? – Rob