![](/img/trans.png)
[英]How to convert IEnumerable<IEnumerable<IGrouping<int,string>>> to IEnumerable<IEnumerable<string>>
[英]How to convert IEnumerable<char> to IEnumerable<string>?
這是代碼:
List<string> SecurityCodePreSend = new List<string> { "1", "2", "3", "4" };
List<string> SecurityCodeSended = new List<string>();
我想將SecurityCodePreSend的前15名添加到SecurityCodeSended,所以我使用Take
of Lambda來完成。
SecurityCodeSended.AddRange(SecurityCodePreSend.Select(n => n.Take(15)));
但是,Visual Studio報告無法將IEnumerable<char>
轉換為IEnumerable<string>
。
我用string.Concat
搜索,發現有人說string.Concat
可以解決它。
如何將IEnumerable<char>
轉換為IEnumerable<string>
? 謝謝。
IEnumerable<String>.Select( n => n.Take(15) )
不會做你認為它的作用:在n
的.Select( n => )
表示每個String
父值IEnumerable<String>
,所以Select( n => n.Take(15) )
獲取每個字符串值的前15個字符,而不是前15個字符串值。
(這是因為Linq擴展方法可在任何 IEnumerable<T>
而String
是IEnumerable<Char>
(以暴露字符串中的每個字符))。
您只需要這個:
SecurityCodeSended.AddRange( SecurityCodePreSend.Take(15) )
我注意到您的代碼應符合C#/。NET命名約定:
camelCase
PascalCase
_
開頭 this.
是否應該使用C#關鍵字string
代替正確的類型名稱String
,這也引起了激烈的爭論,最后Sended
不是有效的英語( en-US
)語法,正確的格式是Sent
。 如果將這些結合在一起,您的代碼應為:
List<String> securityCodesPreSend = new List<String> { "1", "2", "3", "4" };
List<String> securityCodesSent = securityCodesPreSend
.Take( 15 )
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.