Enumerable.Union
Esclude i duplicati, quindi stai ottenendo solo una singola istanza vuota.
Prova a usare Concat
invece.
Domanda
Dato questo metodo, la stringa creata risultante rilascia i valori null consecutivi. È th ??
Essere usati di seguito di seguito? Si sta comportando come se stesse concatentualmente tutti i valori null indicizzati in modo conduttivo prima di restituire
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;
}
}
Ecco il mio array
[0]"0001020003"
1] "Bob Jones"
2] NULL
3] NULL
4] "Longboat"
Con quell'array la stringa unita creata è ...
"0001020003, Bob Jones ,, Longboat"
Soluzione
Enumerable.Union
Esclude i duplicati, quindi stai ottenendo solo una singola istanza vuota.
Prova a usare Concat
invece.