回答:
これを試して:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
これにより、テーブルがグループ化されText、各グループの最初の行が使用され、Textが異なる行になります。
table1.GroupBy(x => new { x.Text, x.Property2, x.Property3 }).Select(x => x.First());
                    GroupBy空のグループを作成しません。以前のコメントを参照してください。ほとんどの場合、コードにはここに表示されている以上のものが含まれています。多分あなたはWhere同様にまたはのための条件を持っていますFirst。
                    MoreLinqにはDistinctByがあります使用できるメソッドがあります。
それはあなたができるようになります:
var results = table1.DistictBy(row => row.Text);
メソッドの実装(引数の検証を除く)は次のとおりです。
private static IEnumerable<TSource> DistinctByImpl<TSource, TKey>(IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
{
    HashSet<TKey> knownKeys = new HashSet<TKey>(comparer);
    foreach (TSource element in source)
    {
        if (knownKeys.Add(keySelector(element)))
        {
            yield return element;
        }
    }
}
              GroupBy必要と同様に、いずれかが使用されます。EqualityComparer何も指定されていない場合、どちらの方法でもデフォルトが使用されます。
                    しかし、r.textが複製されない結果が必要です
あなたがこれを望んでいるかのように聞こえます:
table1.GroupBy(x => x.Text)
      .Where(g => g.Count() == 1)
      .Select(g => g.First());
これにより、Textが一意である行が選択されます。
上記のDaniel Hilgarthの答えは、Entity-FrameworkのSystem.NotSupported例外につながります。エンティティフレームワーク、それがなければなりません。
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());