了解しました。これが取引です。2つのデータベースからデータを取得し、それを別のデータベースに配置するデータ変換を行っています。連絡先のリストを追加してから、通信レコードのリストを追加します。プロセスを簡素化するために、連絡先の世帯の住所を使用して、すべての通信レコードの小さな配列を作成しました。ラムダ式を使用して配列からメールアドレスを並べ替えようとしていますが、問題が発生しています。これまでのコードは次のとおりです。
DataRow[] Comms = dtComms.Select("household_id = " + previousID);
if (Comms.Where(x => x.Field<string>("communication_type") == "Home Phone").Count() > 0)
{
string HomePhone = rNDigits.Replace(Comms[0].Field<string>("communication_value").ToString().Trim(), "");
if (HomePhone.Length > 6)
oAddress._Phone = HomePhone;
}
if (Comms.Where(x => x.Field<string>("communication_type") == "Email").Count() > 0)
{
string FamilyEmail = rNDigits.Replace(Comms[0].Field<string>("communication_value").ToString().Trim(), "");
if (FamilyEmail.Contains('@') && FamilyEmail.Contains('.'))
oAddress._FamilyEmail = FamilyEmail;
}
問題は、明らかに、これは常に配列の最初の値を返すことですが、これは必ずしも私が望む値ではない可能性があります。電子メールを含むエントリに一致する配列から値のみを選択するようにコードを変更するにはどうすればよいですか?または、配列内の値を検索するためのより良い方法はありますか?