LinqToSql を使用するコンソール アプリケーションを作成しました。非常にうまく機能しますが、コードの匂いがするように感じます。これが私のlinqクエリです:
var personnelInfo = Personnels.Where(p => p.Name.Equals("Steve Jobs"));
ここで、そのオブジェクトのさまざまなフィールドについてレポートしたいと思います。これはコードの匂いだと私が感じるものです:
Console.WriteLine(String.Format("Emp ID = {0}", personnelInfo.Select(p => p.EmpID).FirstOrDefault()));
Console.WriteLine(String.Format("Phone# = ({0}) {1}-{2}",
personnelInfo.Select(p => p.Phone).FirstOrDefault().Substring(0,3),
personnelInfo.Select(p => p.Phone).FirstOrDefault().Substring(3,3),
personnelInfo.Select(p => p.Phone).FirstOrDefault().Substring(6,4)));
Console.WriteLine(String.Format("City = {0}", personnelInfo.Select(p => p.City).FirstOrDefault()));
これはリファクタリングできますか?