Is there a Linq method to add a single item to an IEnumerable?

后端 未结 11 640
感动是毒
感动是毒 2021-02-04 23:10

Basically I am trying to do something like this:

image.Layers

which returns an IEnumerable for all layers except the Parent layer,

11条回答
  •  深忆病人
    2021-02-04 23:53

    One way would be to create a singleton-sequence out of the item (such as an array), and then Concat it onto the original:

    image.Layers.Concat(new[] { image.ParentLayer } )
    

    If you're doing this really often, consider writing an Append (or similar) extension-method, such as the one listed here, which would let you do:

    image.Layers.Append(image.ParentLayer)
    

    .NET Core Update (per the "best" answer below):

    Append and Prepend have now been added to the .NET Standard framework, so you no longer need to write your own. Simply do this:

    image.Layers.Append(image.ParentLayer)
    

提交回复
热议问题