解決策を探しましたが、よくわかりません。linq はこれをきちんと処理できるはずだと思いますが、私は linq クエリを作成するのが得意ではありません。基本的に私はクラスを持っています。
public class Message
{
public int CreatedByPersonID { get; set; }
public int? PostedToPersonID { get; set; }
}
私が探しているのは、次の linq の等価物です。
List<int> personIDs = new List<int>();
foreach (Message message in messages)
{
if (!personIDs.Contains(message.CreatedByPersonID))
{
personIDs.Add(message.CreatedByPersonID);
}
if (message.PostedToPersonID != null && !personIDs.Contains(message.PostedToPersonID.Value))
{
personIDs.Add(message.PostedToPersonID.Value);
}
}
これのlinqバージョンはありますか?それとも技術に期待しすぎなのか…?のいくつかのバージョンを探していることはわかっていますが、複数のフィールドを持つSelect()
を作成する方法がわかりませんdistinct