332 {
333 if (paths == null)
334 {
335 throw new ArgumentNullException("paths");
336 }
337 int num = 0;
338 int num2 = 0;
339 for (
int i = 0;
i < paths.Length;
i++)
340 {
341 if (paths[i] == null)
342 {
343 throw new ArgumentNullException("paths");
344 }
345 if (paths[i].Length != 0)
346 {
348 {
350 num = paths[
i].Length;
351 }
352 else
353 {
354 num += paths[
i].Length;
355 }
356 char c = paths[
i][paths[
i].Length - 1];
357 if (!PathInternal.IsDirectorySeparator(c))
358 {
359 num++;
360 }
361 }
362 }
363 Span<char> initialBuffer = stackalloc char[260];
366 for (int j = num2; j < paths.Length; j++)
367 {
368 if (paths[j].Length == 0)
369 {
370 continue;
371 }
372 if (valueStringBuilder.
Length == 0)
373 {
374 valueStringBuilder.
Append(paths[j]);
375 continue;
376 }
377 char c2 = valueStringBuilder[valueStringBuilder.Length - 1];
378 if (!PathInternal.IsDirectorySeparator(c2))
379 {
380 valueStringBuilder.
Append(
'\\');
381 }
382 valueStringBuilder.
Append(paths[j]);
383 }
384 return valueStringBuilder.
ToString();
385 }
static bool IsPathRooted([NotNullWhen(true)] string? path)
void EnsureCapacity(int capacity)
override string ToString()