无法使用对象获取结果

时间:2015-07-11 05:16:00

标签: c# .net

public object My()
{
    List<string> mystring = new List<string>();
    mystring.Add("aaaa");
    mystring.Add("bbb");           
    return mystring;   
}

在主要

 Program p1 = new Program();
 object test = p1.My();
 Console.WriteLine(test);

即使转换为Tolist(),我也会System.Collection.Generic.List

如何将结果转换为List并显示所有元素?

3 个答案:

答案 0 :(得分:2)

您需要将对象(测试)转换回List<string>,然后迭代List<string>中的所有元素以打印它们。

试试这个:

Program p1 = new Program();
object test= p1.My();

List<string> lst = (List<string>) test;
foreach(string item in lst)
   Console.WriteLine(item);

答案 1 :(得分:0)

如果您不知道List将返回的类型,则此答案适用。因此,如果您不知道类型,但是您知道会返回某种List,并且您希望访问List功能,则可以将结果转换为IList接口并且您的程序不关心通用List专用的类型。

Program p1 = new Program();
var test = p1.My();
var lst = (IList) test;
foreach (var item in lst)
    Console.WriteLine(item);

答案 2 :(得分:0)

来自WriteLine方法文档(here

  

如果value为null,则只写入行终止符。否则,   调用ToString方法来生成其字符串   表示,并将结果字符串写入标准   输出流。

正如文档所述,使用List<string>方法调用WriteLine的ToString方法。

ToString的默认行为是返回实例类型的字符串表示。 (here

  

ToString方法的默认实现返回完全   Object类型的限定名称,如下例所示   示出。

要打印列表内容,您需要将方法的返回类型更改为IEnumerable<string>,例如使用Join的{​​{1}}方法。看到这个:

string