我是C#的新手,发现自己处于某种情况下,有时我必须为某些函数返回复杂的返回类型.就像函数可能会接受一些对象并返回该对象的不同视图:添加了一些字段,删除了一些字段等.有时,我可能会接受一个对象列表,并希望返回一些已修改对象的列表,并且可能对所有这些进行汇总计算.
我可以通过返回C#本机类型(如object [])来完成这些事情,但是对象[]的object []然后在代码中必须"知道"该对象[0] [1对应的东西.
我怀疑创建一个名为FnFooReturn的真正新类是有意义的,但是在哪里最有意义的是包含这些类的定义,以便调用该函数的任何地方都可以使用它?
编辑:一个具体的例子:我有一个函数Foo,它接受一个对象列表,如:
(int id, int num, string name)
Run Code Online (Sandbox Code Playgroud)
所以一些示例数据可能是:
(1, 100, "foo")
(1, 203, "foo")
(2, 400, "bar")
(3, 10, "cat")
Run Code Online (Sandbox Code Playgroud)
我想返回一个对象列表,如:
(int id, string name, int[] nums)
Run Code Online (Sandbox Code Playgroud)
看起来像:
[(1, "foo", [100, 103]), (2, "bar", [400]), (3, "cat", [10])]
Run Code Online (Sandbox Code Playgroud)
所以基本上它只是原始对象列表的不同视图,除了它将所有具有相同id的对象组合在一起,以便以后更容易在其他代码中循环.