public static VariantCollection Create(Language?lang, Script?script, IEnumerable <Variant> variants) { VariantCollection.Builder builder = null; foreach (var variant in variants) { if (builder == null) { builder = new VariantCollection.Builder(lang, script); } builder.Append(variant); } return((builder == null) ? new VariantCollection() : builder.ToCollection()); }
internal static VariantCollection TryParse(Language?lang, Script?script, LanguageTag.TokenEnumerator tokens) { var variant = tokens.TryParseVariant(); if (!variant.HasValue) { return(new VariantCollection()); } var builder = new VariantCollection.Builder(lang, script); do { builder.Append(variant.Value); variant = tokens.TryParseVariant(); }while (variant.HasValue); return(builder.ToCollection()); }