ClrPlus.Scripting.MsBuild.Utility.MsBuildMap.LookupMetadataPathList C# (CSharp) Method

LookupMetadataPathList() static private method

static private LookupMetadataPathList ( this pide, string metadataName, string defaultValue = null ) : StringPropertyList
pide this
metadataName string
defaultValue string
return StringPropertyList
        internal static StringPropertyList LookupMetadataPathList(this ProjectItemDefinitionElement pide, string metadataName, string defaultValue = null)
        {
            foreach(var m in pide.Metadata.Where(metadata => metadata.Name == metadataName)) {
                var metadata = m;
                return _stringPropertyList.GetOrAdd(metadata, () => _stringPropertyList.AddOrSet(metadata, new UniquePathPropertyList(() => metadata.Value, v => metadata.Value = v)));
            }
            var n = pide.AddMetadata(metadataName, defaultValue ?? "");
            return _stringPropertyList.GetOrAdd(n, () => _stringPropertyList.AddOrSet(n, new UniquePathPropertyList(() => n.Value, v => n.Value = v)));
        }