سلام
خوب من از متد زیر استفاده می کنم اگه برگشتی 1 باشه فارسی و در غیر این صورت انگلیسی. البته شاید بهینه ترین روش نباشه:
public int IsFarsi(string str)
{
foreach (char item in str)
{
int i = Convert.ToInt32(item);
switch (i)
{
case 1632:
return 1;
case 1633: return 1;
case 1634: return 1;
case 1635: return 1;
case 1636: return 1;
case 1781: return 1;
case 1638: return 1;
case 1639: return 1;
case 1640: return 1;
case 1641: return 1;
case 1570: return 1;
case 1575: return 1;
case 1576: return 1;
case 1662: return 1;
case 1578: return 1;
case 1579: return 1;
case 1580: return 1;
case 1670: return 1;
case 1581: return 1;
case 1582: return 1;
case 1583: return 1;
case 1584: return 1;
case 1585: return 1;
case 1586: return 1;
case 1688: return 1;
case 1587: return 1;
case 1588: return 1;
case 1589: return 1;
case 1590: return 1;
case 1591: return 1;
case 1592: return 1;
case 1593: return 1;
case 1594: return 1;
case 1601: return 1;
case 1602: return 1;
case 1711: return 1;
case 1705: return 1;
case 1604: return 1;
case 1606: return 1;
case 1605: return 1;
case 1608: return 1;
case 1607: return 1;
case 1740: return 1;
case 1574: return 1;
default:
break;
;
}
}
return 0;
}