public static T[]? CloneVectorOfUnion <T>(T[]?source, CloneCallback <T> cloneItem) where T : struct, IFlatBufferUnion { if (source is null) { return(null); } int count = source.Length; T[] clone = new T[count]; for (int i = 0; i < count; ++i) { clone[i] = cloneItem(source[i]); } return(clone); }
public static T[]? Clone <T>(T[]?source, CloneCallback <T> cloneItem) where T : class { if (source is null) { return(null); } int count = source.Length; T[] clone = new T[count]; for (int i = 0; i < count; ++i) { clone[i] = cloneItem(source[i]); } return(clone); }
public static IReadOnlyList <T>?CloneVectorOfUnion <T>(IReadOnlyList <T>?source, CloneCallback <T> cloneItem) where T : struct, IFlatBufferUnion { if (source is null) { return(null); } int count = source.Count; List <T> newList = new List <T>(count); for (int i = 0; i < count; ++i) { newList.Add(cloneItem(source[i])); } return(newList); }
public static IList <T>?Clone <T>(IList <T>?source, CloneCallback <T> cloneItem) where T : class { if (source is null) { return(null); } int count = source.Count; List <T> newList = new List <T>(count); for (int i = 0; i < count; ++i) { var item = cloneItem(source[i]); newList.Add(item); } return(newList); }