2012-12-14 26 views
1

基於列的值我試圖創建一個具有特定屬性值的對象。我如何修改下面的查詢來做到這一點?
//對象alertCode具有「code」屬性,「description」代碼將根據查詢返回的alert_type值進行設置。我想創建一個基於列值的動態對象使用LINQ

var medicalcodes = new string[]{"M", "D", "5"}; 
var specialedcodes = new string []{"C", "I"}; 
var personalcommentscodes = new string []{"A"}; 
var academiccodes = new string[]{"R", "E", "S"}; 

List<alertCode alertCollections = (from a in alertinfo 
            select new alertCode{ 
             where medicalcodes.Contains(a.alert_type) 
             code = 'M', 
             where specialcodes.Contains(a.alert_type) 
             code = 'S', 
             where personalcommentscodes.Contains(a.alert_type) 
             code = 'P', 
             where academiccodes.Contains(a.alert_type) 
             code = 'A', 
             desc = a.description 
            }).ToList(); 

回答

1

我已經搬到碼計算,以單獨的方法

var query = alertinfo.Select(a => new alertCode() 
         { 
         code = GetCodeFor(a.alert_type), 
         desc = a.description 
         }).ToList(); 

碼計算:

private char GetCodeFor(string alertType) 
{ 
    if (medicalcodes.Contains(alertType) 
     return 'M'; 
    if (specialcodes.Contains(alertType) 
     return 'S'; 
    if (personalcommentscodes.Contains(alertType) 
     return 'P'; 
    if (academiccodes.Contains(alertType)) 
     return 'A'; 

    // return default value 
} 
+1

謝謝你這個工作! – user1453999

相關問題