String.join val nulwaardes wat minder items teruggee as die aantal elemente in die skikking

StackOverflow https://stackoverflow.com/questions/20354044

  •  25-08-2022
  •  | 
  •  

Vra

Gegewe hierdie metode, laat die resulterende string wat geskep is, die opeenvolgende nulwaardes daal. Is th ?? As u hieronder verkeerd gebruik word? Dit gedra hulle asof dit alle konsekwente geïndekseerde nulwaardes saamstel voordat dit terugkeer

 public static IEnumerable<string> ToCsv<T>(string separator, IEnumerable<T> objectlist)
        {
            FieldInfo[] fields = typeof(T).GetFields();
            PropertyInfo[] properties = typeof(T).GetProperties();
            yield return String.Join(separator, fields.Select(f => f.Name).Union(properties.Select(p => p.Name)).ToArray());
            foreach (var o in objectlist)
            {
                var pp = properties.Select(
                    p => (p.GetValue(o, null) ?? String.Empty));

                var val = string.Join(separator, fields.Select(f => (f.GetValue(o)).ToString() )
                    .Union(pp).ToArray());
                ;
                yield return val;
            }
        }

Hier is my skikking

[0]"0001020003"
1] "Bob Jones"
2] NULL
3] NULL
4] "Longboat"

Met die skikking is die saamgevoegde string geskep ...

"0001020003, Bob Jones ,, Longboat"

Was dit nuttig?

Oplossing

Enumerable.Union Sluit duplikate uit, dus kry u slegs 'n enkele leë instansie terug.

Probeer gebruik Concat in plaas daarvan.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top