|
|
I believe an issue with using IndexOf is that if the same item is added more than once to the collection, the value returned by IndexOf will be the first index only.
The item I'm storing in the collection could be added multiple times. For instance:
public class MyClass
{
public string Text { get; set; }
public int Index { get; set; }
};
private void ExampleList()
{
List<MyClass> list = new List<MyClass>();
MyClass first = new MyClass() { Text = "Hello" };
list.Add(first);
list.Add(first);
MyClass second = new MyClass() { Text = "Goodbye" };
list.Add(second);
System.Diagnostics.Debug.WriteLine(list[0].Index);
System.Diagnostics.Debug.WriteLine(list[1].Index);
System.Diagnostics.Debug.WriteLine(list[2].Index);
}
Obviously if multiple instances of the same object is going to be an issue, I could re-factor my code to prevent multiple additions, but it'd be preferable if the developer had the option to add the same item twice.
Otherwise, am I restricted entirely to updating the Index property on each collection change? I just wondered if there was some work-around (ie, creating an index array or using some sort of indexing engine built into the framework.)
Thanks
|
|
|
|
|
Chris Copeland wrote: Obviously if multiple instances of the same object is going to be an issue You didn't add multiple instances; you added a single object to the list twice. Now, you'd have to loop the list to find ALL the objects if there can be multiple - but then the property "Index" on the object is erroneous - if the object can be added to the list twice, then "Index" should return an array, returning 0 and 1 as the indexes where it is to be found.
Alternatively;
public class MyClass: ICloneable
{
public string Id = Guid.NewGuid().ToString();
public string Text { get; set; }
public override string ToString()
{
return Text;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
public object Clone()
{
return new MyClass() { Text = this.Text };
}
}
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I'd not thought about adding a unique identifier property. That makes much more sense than actually indexing the position of the item. I suppose the chances of collision are exceptionally low too when using Guid .
Thanks for the assistance, I'll give this a try when I land home!
|
|
|
|
|
Chris Copeland wrote: The item I'm storing in the collection could be added multiple times. This wasn't obvious (to me) in your original post. One solution would be to write an extension method IList<T>.IndicesOf(T) that would return an IEnumerable<int> of indices. But clearly, this doesn't scale when you have a large number of items.
/ravi
|
|
|
|
|
I'm with Ravi on that, what keeps you from adding / updating the information of an item at the time you access it by using IndexOf ()?
I will never again mention that Dalek Dave was the poster of the One Millionth Lounge Post, nor that it was complete drivel.
How to ask a question
|
|
|
|
|
Hi
Iam using VS13.
I have been using the "built" in DataGrid but now need some more functions.
I need a DataGrid that can:
Bind to BindingSource so i can use the BindingNavigator
Sort
Filter
Group
Edit and save
Exporting
Printing
Master/detail/detail (not necessary nested)
Etc
Budget 0-200 US Dollar.
Does anyone have som sugestions?
BR
Jonas
|
|
|
|
|
Google?
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
thank you for that very good answer.
I will email to info@google.com and se if they have a answer for me.
/J
|
|
|
|
|
hey brother,
Quote: Asp.Net unleashed by Sir Stephen Walther.
start reading.
Thanks a ton,
Rahul
|
|
|
|
|
Try Telerik or Devexpress. Both have free trials so you can check the grids out and see if they meet your needs.
|
|
|
|
|
Both of which are beyond his budget!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
thanks,
i have had a look at both and they look more or less perfect but to expensive.
Its only for one small project.
|
|
|
|
|
|
Hi,
I’m writing a desktop app which will export data into a word document but have a question about which
Microsoft.Office.Interop.Word .dll to use for maximum compatibility.
I understand that v11.0.0.0 is for Word 2003, but if I only include this dll in my program, will a user running Word 2010 or 2013 be able to use the dll?
Conversly, if I use v14.0.0.0, will users running Word 2003 be able to use the functionality?
I guess the question is; is the user’s installation of Word backwards compatible with older interop dll’s. Or are the interop .dll’s backwards compatible with older installations of Word? I just want to ensure that my application can write to any installation on Word the user has.
Thanks in advance.
|
|
|
|
|
Member 9809506 wrote: Or are the interop .dll’s backwards compatible with older installations of Word? From 2007 to 2003, mostly yes[^];
Office Blogs wrote: Backward Compatibility is an area we where have focused much attention. We understand that as a platform, we must take steps to ensure that the managed solutions compiled against a 2003 PIA will continue to run properly against the 2007 version. To do this, we’ve taken some great strides during development of the individual object model to ensure that the changes to the OM do not break runtime compatibility. It's not compatible with the predecessor of 2003 (XP). For newer versions, there's binding redirection[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I want Code to Display each IP address and Host No in ListBox using C#
|
|
|
|
|
Can you clarify please, which IPs? - Local to machine or on a particular subnet?
|
|
|
|
|
Write it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Well, everyone should have a hobby.
Myself I want a Google Chromecast. But I've done something towards getting one: I placed an order with a shop. So what have you done to get what you want? Apart from posting here, that is?
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
|
"Griff" is fine - but "GRIFF" sounds like you are shouting!
Im fine - busy with this and that, some of it work...you know how it is!
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
OG,
I have been after you since PLC times . i cant shout at an all time MVP(sounds like 5 time world champion).
I just envy you .
well i have undertaken an other project OG, its a kino pvdv board, i have to bring it up. My friend will port linux, i will have to a lot other application stuff, dont know how to start. First i need to help him compile the kernel.
Its been 5 hours now ...still compiling, is something wrong? dont know
|
|
|
|
|
Don't know - I don't use Linux that much.
I guess it depends on how fast the computer you are building it on?
Have you tried any of the Linux websites?
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
Ahh yes i did that already, actually the linux kernel comprises of : cramfs(compressed file system) and zimage(application settings).
cramfs is the file system, which will appear when you start linux, and zimage will contain your application settings. However i want my application to run on serial baud rate: 9600, usb support, led/lcd interface.
The above job is done and kernel compiled. he wants me to make a web page, I will write a text and that string will display on his LCD. After this is accomplished, we will control LEDs etc etc.
I have told him to write a sample app in C to do this, once done i will use that serial packet to send data from web. Actually OG, this project is for his friend(girl friend ). For once i wont hate female species. At least because of her i got to learn a little Linux.
I never did this for myself and now i am doing it for his gf. I am finding it hard to believe .
Your help is appreciated Og. Its just, if you find time. I will just ask some doubts.
Thanks a ton,
Rahul
|
|
|
|