我有一张翻译地图,如下所示:
我有一个查询,可以查询上面每一行的翻译内容:
var fieldType="Gender";
var translateFrom = "F";
IEnumerable<DataRow> row = from dataRow in translations.AsEnumerable()
where dataRow.Field<string>("TranslateFrom").ToLower().Trim() == translateFrom
&& dataRow.Field<string>("FieldType").ToLower().Trim() == fieldType
select dataRow;
var translateTo = (string)row.FirstOrDefault()?["TranslateTo"];
但是由于某种原因,当我遍历该数据行时,我得到了异常的行为:
例如,如果我将translateFrom
设置为空字符串:
var translateFrom="";
然后我在此行上得到一个空引用异常:
var translateTo = (string)row.FirstOrDefault()?["TranslateTo"];
目标是将string.Empty
翻译为U
,如上面的翻译所示。
我在做什么错了?
答案 0 :(得分:1)
您可以使用以下扩展方法:
public static class MyExtensions {
public static string NullSafe(this string s){
if(s == null){
return "";
}
return s;
}
}
然后像这样使用它将空数据转换为空字符串:
dataRow.Field<string>("TranslateFrom").NullSafe().ToLower().Trim()