有没有办法将T转换为IEnumerable <t>而不使用Add或AddRange </t>

时间:2013-08-16 11:30:09

标签: c# asp.net ienumerable

我有一个节点列表:

IEnumerable<Node> list

我也有一个单一的项目

Node item 

是否可以直接将列表替换为没有List.Add或List.AddRange的项目?

list = item // do something here to convert/cast

2 个答案:

答案 0 :(得分:5)

IEnumerable<Node> list = new[] { item };

单个元素数组?

相当于:

IEnumerable<Node> list = new Node[] { item };

答案 1 :(得分:3)

很多方式,另一种可能是扩展

public static IEnumerable<T> ToEnumerable<T>(this T source)
{
    yield return source;
}

所以你可以做到

IEnumerable<Node> aSequenceOfOne = item.ToEnumerable();

尽管在实践中,尽管有分配,但the array似乎始终是务实的。