为方括号LINQ中的字段赋值时有什么区别?

时间:2015-04-23 17:31:58

标签: linq

我在LINQ编写的时候看到,当一个值分配给某个字段时,有时会以这种方式表["字段"] 以及其他任何类似的 Table.Field 但有人可以解释一下我的差异吗?

例如,在修改字段时:

var ttAbccode_xRow =
    (from ttAbccode_Row in ds.ABCCode select ttAbccode_Row).FirstOrDefault();

if (ttAbccode_xRow != null) {
    ttAbccode_xRow["PI"] = 3.1416;
}

if (ttAbccode_xRow != null) {
    ttAbccode_xRow.PI = 3.1416;
}

1 个答案:

答案 0 :(得分:0)

通过索引器(方括号)访问字段将返回对象数据类型。这意味着您的编译器无法检测数据类型不兼容。你可以帮助例如字符串值(例如" abcd")并且你不会在设计时获得错误,但是最迟在运行时。

第二种方法(如果在结果集中可用)更安全。您的属性将具有适当的数据类型,因此编译器将在设计时检测数据类型不兼容。

如果我有两种可用的访问方法,我总是更喜欢第二种。它不易出错。