public class Translation
{
public string LanguageCode { get; set; }
public string Value { get; set; }
}
public class tblEnumJobFunction
{
public string strEnum { get; set; }
public List<Translation> mlgValue { get; set; } //mlgValue->MultiLingualValue
}
私はList<tblEnumJobFunction> JobFunctionList
いくつかのデータを持っています。
サンプルデータ:
JobFunctionList[0].strEnum="ENUM_Manager";
JobFunctionList[0].mlgValue[0].LanguageCode ="EN";
JobFunctionList[0].mlgValue[0].Value="Manager";
JobFunctionList[0].mlgValue[1].LanguageCode ="DE";
JobFunctionList[0].mlgValue[1].Value="Geschäftsführer";
JobFunctionList[1].strEnum="ENUM_Student";
JobFunctionList[1].mlgValue[0].LanguageCode ="EN";
JobFunctionList[1].mlgValue[0].Value="Student";
JobFunctionList[1].mlgValue[1].LanguageCode ="DE";
JobFunctionList[1].mlgValue[1].Value="Schüler";
このリストは、指定された国コードで LINQ を使用してフィルター処理でき、満足しています。
質問は、リスト/コレクション拡張機能を使用して、ラムダによって以下の同等のクエリ構文をどのように記述できるかです。
これはカスケード/チェーン クエリです。別のリスト内にあるリストを調べます。
このクエリ構文は正常に機能しています。
string CountryCode ="EN";
var Query = from jobfunction in JobFunctionList
from translation in jobfunction.mlgValue
where translation.LanguageCode == CountryCode //'EN'
select translation;
結果は次のとおりです。
List<string> JobList;
foreach (var translationitem in Query)
{
JobList.Add(translationitem .Value);
}
今私が持っています
JobList[0]="Manager";
JobList[1]="Student";
For CountryCode="DE" I have;
JobList[0]="Geschäftsführer";
JobList[1]="Schüler";
これに似たラムダを使用して上記のクエリ構文を記述する方法はありますか?
JobFunctionList.Select(a=>a.mlgValue).Where(b=>b....)...