public static ReadOnlyMemory <KeyValuePair <string, string> > MergeExtraEnvVarsWithProcess( IReadOnlyCollection <KeyValuePair <string, string> > extraEnvVars) { Debug.Assert(extraEnvVars.Count != 0, "This case should fall into 'UseCustomEnvironmentVariables = false'."); var processEnvVars = Environment.GetEnvironmentVariables(); var builder = SortedEnvironmentVariableListBuilder.CreateFromProcess(processEnvVars.Count + extraEnvVars.Count, processEnvVars); builder.InsertOrRemoveRange(extraEnvVars); return(builder.Build()); }
internal static ReadOnlyMemory <KeyValuePair <string, string> > SortExtraEnvVars( IReadOnlyCollection <KeyValuePair <string, string> > extraEnvVars) { if (extraEnvVars.Count == 0) { return(Array.Empty <KeyValuePair <string, string> >()); } var builder = SortedEnvironmentVariableListBuilder.Create(extraEnvVars.Count); builder.InsertOrRemoveRange(extraEnvVars); return(builder.Build()); }
public static ReadOnlyMemory <KeyValuePair <string, string> > MergeExtraEnvVarsWithContext( ReadOnlyMemory <KeyValuePair <string, string> > contextEnvVars, IReadOnlyCollection <KeyValuePair <string, string> > extraEnvVars) { if (extraEnvVars.Count == 0) { // PERF: Use the values from the context as is. return(contextEnvVars); } var builder = SortedEnvironmentVariableListBuilder.CreateFromContext(contextEnvVars.Length + extraEnvVars.Count, contextEnvVars); builder.InsertOrRemoveRange(extraEnvVars); return(builder.Build()); }