1

列の値に基づいて、特定のプロパティ値を持つオブジェクトを作成しようとしています。それを行うには、次のクエリをどのように変更すればよいですか?
//object alertCode には "code" と "description" のプロパティがあり、クエリから返された alert_type の値に応じてコードが設定されます。

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

1 に答える 1

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
}
于 2012-12-14T14:38:30.347 に答える