在C#中可以使用什么替代方法来避免方法返回'object'类型?

在C#中可以使用什么替代方法来避免方法返回'object'类型?,c#,.net,generics,C#,.net,Generics,我知道该方法目前正在返回List。但在某些(在我们的应用程序中经常出现)场景中,它返回的列表只有一个字符串 因此最终它将返回string或List 因为它在运行时返回的内容是不可预测的,所以目前它的返回类型保持为object 可以使用什么替代方法来避免方法返回对象 编辑: 我想知道问题的答案可以使用什么替代方法来避免方法返回对象?;不考虑我描述的场景。列表在这里就足够了。返回一个包含一个或多个字符串元素的列表,并将该列表作为一个列表进行处理,而不管它包含多少元素。为什么返回字符串?一个包含单个字

我知道该方法目前正在返回
List
。但在某些(在我们的应用程序中经常出现)场景中,它返回的列表只有一个字符串

因此最终它将返回
string
List

因为它在运行时返回的内容是不可预测的,所以目前它的返回类型保持为
object

可以使用什么替代方法来避免方法返回
对象

编辑:
我想知道问题的答案可以使用什么替代方法来避免方法返回
对象
;不考虑我描述的场景。列表在这里就足够了。

返回一个包含一个或多个字符串元素的列表,并将该列表作为一个列表进行处理,而不管它包含多少元素。

为什么返回
字符串?一个包含单个
字符串的
列表
定义得非常好。。。用那个!一个模棱两可的API在这里是愚蠢的


另一个选项可能是
IEnumerable
,但是。。。meh,只需返回带有单个
字符串的列表

我看不出返回
List
的问题,即使
List
只包含一个元素。但是,如果您真的希望您的方法在使用一个字符串值时表现不同,您可以这样做

public List<string> GetStrList(out string val)
{
//set str = string.Empty; when value is more than one

//set str = whateverstring when value is only one
} 
public List GetStrList(out string val)
{
//设置str=string.Empty;当值大于一时
//当值只有一个时,设置str=whateverstring
} 

如果列表中有一个或多个字符串,甚至没有字符串(空列表),则没有问题。 当列表中只有一个元素时,为什么要使用字符串。
只需保持API更清晰。

嗯,这个方法是否可能在其体内调用两个不同的方法,一个返回
字符串,另一个返回
列表?如果是这样,也许您可以更改方法以返回
IEnumerable
,并更改
返回GetSingleString()语句到
GetSingleString()


或者您可以将它添加到一个包含单个元素的列表中,然后返回列表,就像这里的一些其他答案所建议的那样

为什么不总是返回列表,即使只有一个元素?让客户端检查列表的长度似乎比将其转换为正确的类型要简单得多。我也做了同样的事情(列表)。但API的消费者抱怨,为什么每次只能有一个字符串,却要迭代列表!!(这对我来说是个恼人的问题。)所以我问了一个问题,想知道这里的专家是否有更好的解决方案。@csharprearner告诉他们如果只需要一个结果,就调用
.Single()
。或者提供第二个方法,它总是返回一个结果。尽管我更喜欢告诉他们调用
.Single()
。编辑了问题并添加了注释。我想知道可以使用什么替代方法来避免方法返回对象?这个问题的答案;不考虑我描述的场景。这里的列表就足够了。@csharprearner-这里故意没有隐喻,因为坦率地说,拥有AP不是一个好主意我知道返回的结果是如此不同。你注意到我关于
.Single()
的观点了吗?是的,我读了你关于
.Single
的评论,并为此给出了+1。