C#の文字コードはUnicode(UTF-16)で、Unicodeは言語(文字種類)別に「ブロック」分けしているので、特定のブロックの出現頻度を調べることで言語を推定できると思います。
特定のブロックが文字列中に含まれているかどうかを調べるには、正規表現がお手軽です。\p{ブロック指定}
で指定したブロックの文字にマッチさせることができます。例えば、アラビア文字の場合は\p{IsArabic}
と指定します。詳しくは.NET Frameworkの「正規表現での文字クラス」を参照ください。
あるいは、正規表現を使わずに文字列の先頭から終端まで1文字ずつ文字コードのブロックを調べて、特定のブロックの出現頻度をカウントするという方法も良いかもしれません。
Unicodeやブロックに関する詳しい説明はWikipediaのUnicodeを参照ください。ちなみに、漢字は'CJK'と呼ばれています。