0

我有以下查询,它从名为 dtRows 的数据表中选择行。dtRows 包含 2 列 FieldId 和 FieldValue,FieldId 包含如下值。当我选择 FieldId 时,我需要去掉前两个字符并将最后一个字符转换为不同的字符串。例如,1_3_1 应该是 3_FirstName,1_3_2 应该是 3_LastName,1_3_3 应该是 3_MiddleName。有人有什么建议吗??非常感谢您的任何想法!

FieldId 值:

1_1_1
1_1_2
1_1_3
1_2_1
1_2_2
1_2_3
1_3_1
1_3_2
1_3_3

var Names = from row in dtRows.AsQueryable()
                   where Convert.ToInt16(row.Field<string>("FieldId").Substring(2)) == prefix
                   select new
                   {
                       fieldId = 
           fieldValue = row.Field<string>("FieldValue")
                   };
4

1 回答 1

0

我会编写一个函数来计算不同的字符串,然后调用它:

var Names = from row in dtRows.AsQueryable() 
               let id = row.Field<string>("FieldId")
               where Convert.ToInt16(id.Substring(2)) == prefix 
               select new 
               { 
                   fieldId = ConvertString(id),
                   fieldValue = row.Field<string>("FieldValue") 
               }; 

private string ConvertString(string original)
{
    // implementation left as an exercise
}
于 2012-04-12T19:05:34.893 回答