例如:
string element = 'a';
IEnumerable<string> list = new List<string>{ 'b', 'c', 'd' };
IEnumerable<string> singleList = ???; //singleList yields 'a', 'b', 'c', 'd'
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 34
我认为你不能只Insert进入现有的清单?
好吧,你可以用new[] {element}.Concat(list).
否则,您可以编写自己的扩展方法:
public static IEnumerable<T> Prepend<T>(
this IEnumerable<T> values, T value) {
yield return value;
foreach (T item in values) {
yield return item;
}
}
...
var singleList = list.Prepend("a");
Run Code Online (Sandbox Code Playgroud)
由于 .NET 框架 4.7.1 有 LINQ 方法:
list.Prepend("a");
Run Code Online (Sandbox Code Playgroud)
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.prepend?view=netframework-4.7.1
你可以自己动手:
static IEnumerable<T> Prepend<T>(this IEnumerable<T> seq, T val) {
yield return val;
foreach (T t in seq) {
yield return t;
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用它:
IEnumerable<string> singleList = list.Prepend(element);
Run Code Online (Sandbox Code Playgroud)
public static class IEnumerableExtensions
{
public static IEnumerable<T> Prepend<T>(this IEnumerable<T> ie, T item)
{
return new T[] { item }.Concat(ie);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7601 次 |
| 最近记录: |