IEnumerable<treenode>
ノードとしてtreenodeコレクションがあります。treenode.guid
すべての要素を反復せずにノードから直接コレクションを作成する方法はありますか?
例えば:
guidcollection nodeguids = nodes.somemethod();
IEnumerable<treenode>
ノードとしてtreenodeコレクションがあります。treenode.guid
すべての要素を反復せずにノードから直接コレクションを作成する方法はありますか?
例えば:
guidcollection nodeguids = nodes.somemethod();
答えはそうではありません-各ノードからの情報が必要な場合は、明らかにノードのコレクションを反復処理する必要があります。ただし、次のようなことができます。
IEnumerable<Guid> nodeguids = nodes.Select(n => n.Id);
このようにして、少なくとも手動で反復を実行する必要はありません。の実装にはコレクションのすべての要素に対する反復が含まれますが、コレクションをどこかSelect
で使用しようとするときに実行されます。nodeguids
LINQはレイジーイテレータを使用します。したがって、このようなコレクションを作成できます...
IEnumerable<TreeNode> myCollection = GetTreeNodes();
IEnumerable<Guid> guidCollection = myCollection.Select(tn => tn.Guid);
guidCollectionは、何らかの方法で繰り返され、カウントされ、実行されるまで入力されません。
古い学校に行くこともできます。
function IEnumerable<Guid> GetIdsFromCollection(TreeNode collection)
{
foreach (var item in collection)
yield return item;
}