كيف يمكنني الحصول على القيم الفريدة لمصفوفة في .net؟
سؤال
لنفترض أنني حصلت على هذه المجموعة:myarray (0) = "aaa" myarray (1) = "bbb" myarray (2) = "aaa"
هل هناك وظيفة .net يمكنها أن تعطيني القيم الفريدة؟أرغب في شيء مثل هذا كمخرج للوظيفة:outputArray (0) = "aaa" outputArray (1) = "BBB"
المحلول
بافتراض أن لديك .Net 3.5/LINQ:
string[] OutputArray = MyArray.Distinct().ToArray();
نصائح أخرى
قد يكون الحل هو استخدام LINQ كما في المثال التالي:
int[] test = { 1, 2, 1, 3, 3, 4, 5 };
var res = (from t in test select t).Distinct<int>();
foreach (var i in res)
{
Console.WriteLine(i);
}
من شأنه أن يطبع المتوقع:
1
2
3
4
5
يمكنك استخدام قاموس لإضافتها باستخدام مفتاح، وعند إضافتها، تحقق مما إذا كان المفتاح موجودًا بالفعل.
string[] myarray = new string[] { "aaa", "bbb", "aaa" };
Dictionary mydict = new Dictionary();
foreach (string s in myarray) {
if (!mydict.ContainsKey(s)) mydict.Add(s, s);
}
استخدم فئة HashSet المضمنة في .NET 3.5.
لا تنتمي إلى StackOverflow