私はこれをコード内のいくつかの異なる場所に書き込んでおり、単一のジェネリック関数を作成したいのですが、その方法を完全に理解することはできません。
これが私がしていることの例です:
public static string FormatCompaniesAsCSV(ICollection<Company> companies)
{
string csv = "";
foreach(Company c in companies)
{
csv += c.CompanyName + ",";
}
return csv.Substring(0, csv.LastIndexOf(","));
}
問題は、すべての会社のSKUまたはこれが製造されているすべての工場を表示する場合、基本的に同じコードを記述しなければならないことです。変更されるのは、アクセスしているオブジェクトタイプとプロパティだけです。私がやりたいのは次のようなものです。
public static string FormatCSV<T>(ICollection<T> elements, string propertyName)
{
string csv = "";
foreach(T element in elements)
{
//I know this next line doesn't work
//this is just a high level conceptualization of what I want to do
csv += element.getPropertyValue(propertyName) + ",";
}
return csv.Substring(0, csv.LastIndexOf(","));
}
foreachループ内の要素のプロパティにアクセスする方法が必要ですが、どこから始めればよいのかよくわかりません。System.Linq.Expressionsライブラリを簡単に調べましたが、探していたものが見つかりませんでした。
私は正しい方向に進んでいますか?そうでない場合、私がやりたいことを達成するためのより良い方法はありますか?