我有List<object>
以上看來,我想將其轉換爲List<string>
。
我該如何轉換它?
我需要List<string>
有6個項目(11:00,13:45,...等)
我有List<object>
以上看來,我想將其轉換爲List<string>
。
我該如何轉換它?
我需要List<string>
有6個項目(11:00,13:45,...等)
var mylist = myObjectList.ConvertAll(x => x.ToString());
編輯
var mylist = myObjectList.ConvertAll(x => Convert.ToString(x));
感謝斯科特·張伯倫
要獲得對象
var mylist = (myObjectList.First() as object[]).ToList()
.ConvertAll(x=>Convert.ToString(x));
的第一陣列添加休息到列表中。
mylist.AddRange(mylist.GetRange(1,myObjectList.Count-2).ConvertAll(x=>Convert.ToString(x)));
呵呵,我從來不知道'ConvertAll'。但是你應該使用'Convert.ToString(x)',因爲這將檢查類是否支持['IConvertable'](http://msdn.microsoft.com/en-us/library/system.iconvertible.aspx),如果不是那麼它回落到'.ToString()' –
就是這樣!有用 !!感謝您的關注。 –
很高興幫助 – Alyafey
您可以使用LINQ可簡單地把它。
myObjectList.Cast<string>();
或過濾所有非字符串
myObjectList.OfType<string>();
沒有這樣的方法'TypeOf' –
你是對的它的OfType <> –
我會小心'OfType'。它實際上充當了尋找給定類型的對象的'where'語句,並且除去了那些不是的對象。如果由於某些(愚蠢的)原因,你的列表中有兩種以上的類型,或者你的類型不是以字符串開頭的,它會選擇較少的。 – gunr2171
像這樣的模型:
var list = (List<String>) listObjects.
好吧,我打電話給你的虛張聲勢。這不會編譯。 – gunr2171
在發佈它作爲答案之前,嘗試使用這樣的代碼通常是一個好主意。 –
試試這個
List<string> stringlist = objectList.Cast<string>()
.ToList();
如果你不能確定這些元素都是字符串,你可以在空值的情況下使用Select
List<string> stringlist = objectList.Select(x=> x.ToString())
.ToList();
爲了避免NullReferenceException
請嘗試以下
List<string> stringlist = objectList.Where(x=> x != null)
.Select(x=> x.ToString())
.ToList();
第二個將失敗'null'值。 – Servy
@Servy我期待這一點,從你這裏得到它。現在修復:) –
使用LINQ這很簡單。如果你確信它們都是字符串,你可以簡單地做
int i = //Some code that sets i, like a for loop
var oldList = seanceInfo.theatre[i].seances;
List<string> newList = oldList.Cast<string>().ToList();
如果你不知道所有的對象都需要執行某種轉換的字符串,當然,這是容易
List<string> newList = oldList.Select(o => Convert.ToString(o)).ToList();
從您的評論:「 降神會是List<object>
和降神會的第一個指標是object[]
我需要這些項目」,我覺得你真的希望可以爲SelectMany
List<string> info = seanceInfo.theatre.SelectMany(x => x.seances).Select(x => Convert.ToString(x)).ToList();
這將需要各降神會在每個劇場和一個主列表結合起來。
它的工作原理,但我需要索引[0]列出的項目。您的解決方案不會給我這些項目。 –
@MelihMucuk是的它的確如此,請參閱我更新後的版本,我替換了'\\ ...' –
無法投射類型爲'System.Object []'的對象以輸入'System.String' –
你沒有一個'清單
@ScottChamberlain,真實的,但大部分的解決方案,下面應該仍然工作。數組有IEnumerable。 – gunr2171
座位是列表