オブジェクトのプロパティ/フィールドの名前と値を配列にしたいことが、あまりないかもしれませんが、たまにはあるかもしれません。
今がそのたまにです。
大したコードではないですが、検索する方もいるかもしれないのでメモ。
概要
リフレクションで名前と値の組のタプルを作ってそれを Select でシーケンスにして Concat でつなげて SelectMany で一本化して ToArray で配列にします。簡単ですね。
var s = 1; var type = s.GetType(); var nameAndValues = Enumerable.Concat( type.GetFields().Select(f => (f.Name, f.GetValue(s))) , type.GetProperties().Select(p => (p.Name, p.GetValue(s)) ) .SelectMany(kv => new string?[] { kv.Item1, (kv.Item2?.ToString()) }) .ToArray();