/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ namespace Carbon.Json { using System; using System.Linq; public partial class XNodeArray { public static XNodeArray Create(T[] source, Func selector) { if (source == null || selector == null) { return null; } var result = new XNodeArray(); foreach (var item in source.Select(selector)) { result.SafeAdd(item); } return result; } public void SafeAdd(JsonNode item) { if (item != null) { items.Add(item); } } public void SafeAdd(Func itemFn) { if (itemFn != null) { var item = itemFn(); if (item != null) { items.Add(item); } } } } }