List<object> li = new List <object>(Items);
string name = "";
foreach (var item in Items)
{
name = item["title"].ToString();
}
return name;
使用此代碼片斷在一個列表返回每一個項目,我找不到改變返回輸出列表中的所有項目的方式。因爲它只返回最後一個項目。我怎樣才能讓每件物品都回來?從一個foreach
List<object> li = new List <object>(Items);
string name = "";
foreach (var item in Items)
{
name = item["title"].ToString();
}
return name;
使用此代碼片斷在一個列表返回每一個項目,我找不到改變返回輸出列表中的所有項目的方式。因爲它只返回最後一個項目。我怎樣才能讓每件物品都回來?從一個foreach
這只是返回一個列表,但它的作品有點荒謬。我個人只是一次返回整件事情。
List<object> li = new List <object>(Items);
string name = "";
foreach (var item in Items)
{
yield return item["title"].ToString();
}
'yield return'和'return'within方法之一?如果我沒有記錯,這將不會編譯。 –
是的,我修正了它,謝謝我認爲它會抱怨並非所有的路徑都會返回 –
您的代碼將無法編譯。分配不能在'yield return'中產生 – Romoku
你必須返回一個新的列表,在你的榜樣,你只是設置名稱爲當前的名字,然後在年底返回的名稱。由於循環遍歷所有元素,在返回之前,名稱將設置爲列表中的最終值。除此之外,您的返回類型爲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());
上面的代碼將返回字符串,它是逗號分隔的元素標題列表。
如您所知,方法可以返回一個值並返回語句。所以你應該把所有的項目都歸爲IEnumerable(List,Array等)。
return Items.Select(x => x["Title"].ToString()).ToArray();
你需要返回整個列表並提取每個元素,當你想使用它們。除非您將它們保存在某種容器您不能一次通過所有這些元素(陣列,例如)。
而且,這並沒有多大意義,如果你已經有了一個List對象來容納它們。 CLR的List<T>
類型是可調整長度的數組,而不是傳統的鏈表。
如果您可以更詳細地瞭解您的確切場景,我們可以幫助您更好地完成。
創建一個新列表並返回它.. – Sayse
這將有助於瞭解此方法消耗的位置 – Khan
您希望他們如何返回?你想讓它們成爲一個單一的字符串嗎?你想要返回一個字符串或其他東西的列表... – Chris