|
...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
|
|
|
|
|
George_George wrote: I have to use .Net 3.0
Then I can't suggest HashSet.
But I can suggest my Set class.
|
|
|
|
|
What are the advantages of your Set class over .Net Set class?
regards,
George
|
|
|
|
|
|
Could you show more description please? What operators do you think your class provides has advantages over .Net built-in ones?
regards,
George
|
|
|
|
|
Not sure why people are saying there isn't a built in set class. Use Hashset< string>.
Insertion and checking for existing values is roughly O(n). Has extension methods on it for doing linqy kind of things.
Also noticed a lot of people said "use linq!". Linq does not make things run faster - it's not a magic replacement for Array.Find. It just makes your code look pretty, thats all
|
|
|
|
|
Thanks Mark,
I think people means no built-in single call for find the uniqueness for string.
BTW: if LINQ is slow, why people will use LINQ?
regards,
George
|
|
|
|
|
*shrug* I think Hashset< T>.Add(T item) returning bool if it was unique is close enough.
People use LINQ because it makes the code more readable. Generally CPU is cheap and good programmers aren't. Its ok to have a 10% overhead if your code is more reliable and easier to maintain as a result.
|
|
|
|
|
Mark Churchill wrote: Generally CPU is cheap and good programmers aren't
That's a good one
|
|
|
|
|
Thanks Mark,
1. "*shrug* I think Hashset< T>.Add(T item) returning bool if it was unique is close enough." -- I am still confused why do you think .Net built-in Hashset is good enough. Any comments?
2. I know about LINQ but not very experienced. My concern about LINQ is, I do not think it is more readable, why do you think it is more readable?
3. LINQ is only 10% slower? I think it is much slower in my experience. Do you have any performance benchmarking data?
regards,
George
|
|
|
|
|
George_George wrote: BTW: if LINQ is slow, why people will use LINQ?
I think Mark is right. We can get the benefits from LINQ for integrating the data and object. But I am not sure about the performance of LINQ. Though I do believe Mircosoft would make greate efforts to improve it.
LuckyBoy
|
|
|
|
|
In my experience and other guys besides me, the performnace feedback of LINQ is bad.
What about yours?
regards,
George
|
|
|
|
|
In fact, I did not use LINQ quite often in my project. Hence I could not give you any comment about performance of LINQ, especially without investigating from performance tool.
However, I have to admit the creativity of LINQ. For a certain degree, it presents the .net technology tendency-integrate data. Although maybe the final goal is ambitious and full of issues, such as performance, complexity, nobody would ignore the benefits form LINQ.
LuckyBoy
|
|
|
|
|
Hi LuckyBoy,
I think ising ADO.Net is fine enough, why bothering using LINQ?
regards,
George
|
|
|
|
|
Well, Language Integrated Query, maybe to provide a common QUERY method for various data source from different domains, such as ADO.net, XML, SQL server, is the way how microsoft simplify the access for data and object.
But it is still young, so let us try to be nice and patient.
Tan Li
I Love KongFu~
|
|
|
|
|
Thanks Tan Li!
regards,
George
|
|
|
|
|
Welcome~
Tan Li
I Love KongFu~
|
|
|
|
|
Sounds to me like you should be using a set data structure, if you never need the duplicate strings.
At university studying Software Engineering - if i say this line to girls i find they won't talk to me
Dan
|
|
|
|
|
Thanks Dan!
But there is no such data structure in .Net, correct?
regards,
George
|
|
|
|
|
|
Thanks Dan!
Good stuff!
regards,
George
|
|
|
|