Enumerable.Union
Sluit duplikate uit, dus kry u slegs 'n enkele leë instansie terug.
Probeer gebruik Concat
in plaas daarvan.
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"
Oplossing
Enumerable.Union
Sluit duplikate uit, dus kry u slegs 'n enkele leë instansie terug.
Probeer gebruik Concat
in plaas daarvan.