Преобразование класса в массив
У меня есть класс DisplayedData...
public class DisplayedData
{
private int _key;
private String _username;
private String _fullName;
private string _activated;
private string _suspended;
public int key { get { return _key; } set { _key = value; } }
public string username { get { return _username; } set { _username = value; } }
public string fullname { get { return _fullName; } set { _fullName = value; } }
public string activated { get { return _activated; } set { _activated = value; } }
public string suspended { get { return _suspended; } set { _suspended = value; } }
}
И я хочу поместить объекты из этого класса в массив, где все объекты внутри этого класса должны быть преобразованы в String []
У меня есть..
DisplayedData _user = new DisplayedData();
String[] _chosenUser = _user. /* Im stuck here :)
или я могу создать массив, в котором все элементы внутри состоят из переменных различного типа данных, так что целое число остается целым числом, и поэтому строки тоже?
Ответы
Ответ 1
Вы можете создать массив "своими руками" (см. Учебное пособие по массивам):
String[] _chosenUser = new string[]
{
_user.key.ToString(),
_user.fullname,
_user.username,
_user.activated,
_user.suspended
};
Или вы можете использовать Reflection (Руководство по программированию на С#):
_chosenUser = _user.GetType()
.GetProperties()
.Select(p =>
{
object value = p.GetValue(_user, null);
return value == null ? null : value.ToString();
})
.ToArray();