【发布时间】:2011-06-06 23:52:06
【问题描述】:
我是 C# 新手,有时我不得不为某些函数返回复杂的返回类型。就像函数可能会接收一些对象并返回该对象的不同视图:添加了一些字段,删除了一些字段等。有时,我可能会接收一个对象列表并希望返回一些修改对象的列表,并且可能对所有这些进行一些聚合计算。
我可以通过返回 C# 本机类型(如 object[])来完成这些事情,但是拥有 object[] 的 object[] 然后在代码中必须“知道”那个 object[0 ][1] 对应于某物。
我怀疑创建一个名为 FnFooReturn 的真正新类是有意义的,但是在哪里包含此类类的定义以便调用该函数的任何地方都可以使用它最有意义?
编辑: 一个具体的例子: 我有一个函数 Foo ,它接收一个对象列表,例如:
(int id, int num, string name)
所以一些示例数据可能是:
(1, 100, "foo")
(1, 203, "foo")
(2, 400, "bar")
(3, 10, "cat")
我想返回一个对象列表,例如:
(int id, string name, int[] nums)
看起来像:
[(1, "foo", [100, 103]), (2, "bar", [400]), (3, "cat", [10])]
所以基本上它只是原始对象列表的不同视图,除了它将具有相同 id 的所有对象组合在一起,以便以后在其他代码中循环更容易。
【问题讨论】:
-
能否提供一些示例代码,以便我们做出更具体的设计指导?
-
每件事都有太多的方法。举一个你正在尝试的例子,有人可能会给出你认为在其他地方也适用的答案。
-
@sixlettervariables 我加了一个例子
-
你能把名字贴在
(int id, string name, int[] nums)上吗,它在其他地方用过吗? -
@Henk 在这种情况下,只是这一个功能,但3个左右的地方可能会使用结果
标签: c#