【发布时间】:2015-04-23 17:31:57
【问题描述】:
我在 LINQ 中编码时看到,当一个值被分配给一个字段时,有时是以这种方式 Table["Field"] 和任何其他类似的 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;
}
【问题讨论】:
-
你能再具体一点吗?
-
第一个示例是通过索引器访问值,第二个示例仅使用属性。当有很多值并且您不想在需要添加新值时总是扩展类时,第一个很有用。第二个是类型安全且可读的。
-
而且根本不是“声明一个字段”...
-
嗨@TravisJ 例如在修改字段时: var ttAbccode_xRow = (from ttAbccode_Row in ds.ABCCode select ttAbccode_Row).FirstOrDefault(); if (ttAbccode_xRow != null) { ttAbccode_xRow["PI"] = 3.1416; } 或 var ttAbccode_xRow = (从 ds.ABCCode 中的 ttAbccode_Row 选择 ttAbccode_Row).FirstOrDefault();如果(ttAbccode_xRow != null){ ttAbccode_xRow.PI = 3.1416; }
-
我认为这与 LINQ 没有任何特别的关系。您已从
ds.ABCCode集合中检索到一些对象。无论您检索到的任何对象都有一个索引器(第一个示例)、一个属性(第二个示例),或者两者都有。
标签: linq