|
Your question makes no sense.
There's no association between a listening socket and a folder.
What are you trying to ask?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hello everyone,
I have a string array, but may have duplicate strings. Any built-in or smart way to remove the duplicate ones and generate a string array contains only unique ones?
For example, the input array is {"abc", "bcd", "abc"}, the unique output array is {"abc", "bcd"}.
thanks in advance,
George
|
|
|
|
|
from what I know there's no such thing and you'd have to iterate thru and pick the unique ones manually. it's not that difficult you know
|
|
|
|
|
Thanks Igor,
Good to know .Net does not provide such a class.
regards,
George
|
|
|
|
|
I dunno why a set class is not included, but it's easy to write one. Just have a list inside, and check if an entry exists before adding it.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
Thanks Christian,
What do you mean "have a list inside"? I am talking about string array, I am not sure where is the list you are talking about. Show some pseudo code?
regards,
George
|
|
|
|
|
public class set<t>
{
private List<t> theList;
public bool Add(T item)
{
if (theList.Contains(item)) return false;
theList.Add(item);
return true;
}
}
This is the start of a set class, a container that only contains one of any object.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
Thanks Christian,
I like your idea. I am surprised why there is no built-in Set class in .Net.
regards,
George
|
|
|
|
|
May be Array.FindAll can help you. Check out MSDN for it.
Another way could be:
1. Create a list/hashtable. Then loop through the array.
2. Check if the element exists in the list/hashtable.
3. If it does its a duplicate value. Remove it from array.
4. If it doesnt add it to the list/hashtable.
C isn't that hard: void (*(*f[])())() defines f as an array of unspecified size, of pointers to functions that return pointers to functions that return void
"Always program as if the person who will be maintaining your program is a violent psychopath that knows where you live." - Martin Golding
|
|
|
|
|
Hi d@nish,
I have studied related MSDN page about Array.FindAll, but I do not think it could help me in my solution. Do you have any pesudo code to show your idea of using Array.FindAll to make a unique string array?
regards,
George
|
|
|
|
|
You have to iteretae it.You can use some generic for that
Cheers!!
Brij
|
|
|
|
|
Hi Brij,
"some generic for that" -- do you have some more words on this? Or some pseudo code?
regards,
George
|
|
|
|
|
List<string> newArray = new List<string>();
foreach (string token in yourArray)
{
if (!newArray.Contains(token))
{
newArray.Add(token);
}
}
|
|
|
|
|
Thanks Igor,
I like your solution!
regards,
George
|
|
|
|
|
no worries
|
|
|
|
|
Make a custom function,In which create an a generic as taken below a list.
List<string> UnqueList=new List<string>();
for (int i = 0; i < strarr.Length; i++)
{
if(!UnqueList.Exists(strarr[0]))
{
UnqueList.Add(strarr[0]);
}
}
Now you'll the list conatining unique elements.You can conert it to array too as
UnqueList.ToArray();
Cheers!!
Brij
|
|
|
|
|
Thanks Brij!
The "generic" you mean List<string>?
regards,
George
|
|
|
|
|
Generic does means only List.We have some more like Dictionary,SortedList,Queue,Stack but list suits your requirement best.
Cheers!!
Brij
|
|
|
|
|
Thanks for your clarification, Brij!
regards,
George
|
|
|
|
|
If I'm not mistaken you can use LINQ to select unique values.
|
|
|
|
|
...yes, assuming he's using .net 3+
|
|
|
|
|
Yes, I have to use .Net 3.0, not .Net 3.5. Any ideas for .Net 3.0 based solution? I think LINQ belongs to .Net 3.5, not .Net 3.0?
regards,
George
|
|
|
|
|
LINQ is good, but I have to use .Net 3.0, not .Net 3.5. Any ideas for .Net 3.0 based solution?
regards,
George
|
|
|
|
|
You can use the Distinct method(an Extention Method) if you are using C#3.0 and the implementation code is quit simple, such as:
string[] strs = new string[] { "abc", "bcd", "abc" };
IEnumerable<string> newStrs = strs.Distinct();
Hope this will help.
LuckyBoy
|
|
|
|
|
LuckyBoy,
Distinct belongs to .Net 3.5, and I have to use .Net 3.0.
Any ideas for .Net 3.0?
regards,
George
|
|
|
|