Maze / Library /PackageCache /com.unity.visualscripting@1.8.0 /Runtime /VisualScripting.Flow /Framework /Collections /LastItem.cs
| using System.Collections; | |
| using System.Linq; | |
| namespace Unity.VisualScripting | |
| { | |
| /// <summary> | |
| /// Returns the first item in a collection or enumeration. | |
| /// </summary> | |
| [] | |
| public sealed class LastItem : Unit | |
| { | |
| /// <summary> | |
| /// The collection. | |
| /// </summary> | |
| [] | |
| [] | |
| public ValueInput collection { get; private set; } | |
| /// <summary> | |
| /// The last item of the collection. | |
| /// </summary> | |
| [] | |
| [] | |
| public ValueOutput lastItem { get; private set; } | |
| protected override void Definition() | |
| { | |
| collection = ValueInput<IEnumerable>(nameof(collection)); | |
| lastItem = ValueOutput(nameof(lastItem), First); | |
| Requirement(collection, lastItem); | |
| } | |
| public object First(Flow flow) | |
| { | |
| var enumerable = flow.GetValue<IEnumerable>(collection); | |
| if (enumerable is IList) | |
| { | |
| var list = (IList)enumerable; | |
| return list[list.Count - 1]; | |
| } | |
| else | |
| { | |
| return enumerable.Cast<object>().Last(); | |
| } | |
| } | |
| } | |
| } | |