List<object> li = new List <object>(Items);
string name = "";
foreach (var item in Items)
{
name = item["title"].ToString();
}
return name;
使用此代码段,我无法找到一种方法来更改列表中输出所有项的返回值。原样,它只返回最后一项。如何退回所有项目?
答案 0 :(得分:7)
您必须返回一个新列表,在您的示例中,您只需将名称设置为当前名称,然后在结尾处返回名称。由于遍历所有元素,因此在返回之前将name设置为列表中的最终值。除此之外,您的返回类型为string
,除非您将li
中的所有元素合并为一个字符串,然后您不能将列表作为字符串返回。
List<string> newList = li.Select(x => x["title"].ToString()).ToList();
将创建一个新的字符串列表,其中每个元素都是源列表li
中元素的标题。
如果你真的想要返回一个字符串,你可以使用(我相信)String.Join
或(我确定这个)Aggregate
就像这样;
return li.Aggregate((c, n) => c["title"].ToString() + ", " + b["title"].ToString());
上面的代码将返回字符串,该字符串是元素标题的逗号分隔列表。
答案 1 :(得分:0)
这对于返回列表有点荒谬但是有效。我个人只会立刻归还整件事。
List<object> li = new List <object>(Items);
string name = "";
foreach (var item in Items)
{
yield return item["title"].ToString();
}
答案 2 :(得分:0)
如您所知,method可以返回一个值 with return statement 。因此,您应该将所有项目作为IEnumerable(List,Array等)返回。
return Items.Select(x => x["Title"].ToString()).ToArray();
答案 3 :(得分:0)
当您想要使用它们时,需要返回整个List并提取每个元素。你不能一次传递所有这些元素,除非你将它们存储在某种容器中(例如,数组)。
同样,如果您已经有一个List对象来容纳它们,那么这没有多大意义。 CLR的List<T>
类型是可调长度数组,而不是经典链表。
如果您可以发布更详细的信息,我们可以为您提供更好的帮助。