|
Forgot? This is a critical piece of information that could have saved us botth a lot of time.
You can't use the <% %> syntax in this situation. There is no ASP.NET engine involved that will parse and render these tags.
I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Alright, and sorry. By the time I got to this problem I'd already been up most night. Lesson learned.. don't post the help topics when severely lacking sleep..
|
|
|
|
|
I have a string str = "123 abc b1c3 and so on"
i need to get fragments without spaces
string_array[0] = "123"
string_array[1] = "abc"
and so on
How can i do it?
|
|
|
|
|
str.Split(new char[]{' '});
|
|
|
|
|
split uses ' ' as delimiter and if i have more than one space?
|
|
|
|
|
str = str.Replace(" ", " ").Split(new char[]{' '});
|
|
|
|
|
|
works good!
|
|
|
|
|
Or, alternatively...
str = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
Normally I just use str.Split(" "); but having seen Ian's response below with the options parameter, I may start using your form - I didn't know RemoveEmptyEntries existed, so I check and ignore them myself.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
Use a regular expression. If you want to separate by numbers then use [0-9]{3}, if you want letters, [a-z]{3}, or if you want words \w.
I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Or... Rive[^]. But Split is all you need fo rthe given data.
|
|
|
|
|
I haven't done .NET programming in a while so I'm not sure what the best approach is for this. I'm using the .NET Framework 4.0 and the BigInteger class. Before the end of my loop, I have:
Array.Resize(ref numbers, numbers_temp.Length);
numbers_temp.CopyTo(numbers, 0); Is there a better approach than this? I have an array of BigInteger that I add and delete numbers from at various times in the loop. Towards the end of my loop, this array grows quite a bit. It seems such a waste to create another array to copy all members from one to the other and then destroy the older one at every loop iteration.
Thanks!
|
|
|
|
|
I use a generic list for this. In the rare case when I need to return a real array I use the ToArray method.
Remember from CS
If you resize a dynamic array a contiguous chunk of unassigned memory has to be found and then the entire array copied over. Thus, a generic list will be more efficient in all cases.
|
|
|
|
|
As in?
List<BigInteger> numbers = new List<BigInteger>(); Thanks!
|
|
|
|
|
Well, a good way for dynamic arrays is to use the System.Collections.Generic.List<object>; or for keyed stuff a System.Collections.Generic.Dictionary<key,object>.
List<int> list = new List<int>();
list.Add(1);
list.Add(3);
list.Add(5);
int[] intArray = list.ToArray();
|
|
|
|
|
|
You could use a List<BigInteger>
Or do what the List does, double the size every time you need more room.
Or, since it seems that numbers_temp is an array, you are already done. Just change numbers to point to numbers_temp and allocate a new numbers_temp array next time.
But you didn't give much information, so maybe I could not properly answer your question.
|
|
|
|
|
Thanks! I'll probably end up using the scaling. My list array increases by roughly a factor of three at each iteration.
|
|
|
|
|
harold aptroot wrote: Or, since it seems that numbers_temp is an array, you are already done. Just change numbers to point to numbers_temp and allocate a new numbers_temp array next time.
BTW, this is what I'm doing. I'm trying to get rid of this.
|
|
|
|
|
If you were doing that, you wouldn't need any CopyTo ..
and no Resize either
|
|
|
|
|
What? In my code? That's how the example I saw had it. Like I said, it's been a while since I've done .NET programming. But I think I'll switch to the list since it seems better suited than this.
|
|
|
|
|
Like this:
numbers_temp = new BigInteger[some number you apparently know];
numbers = numbers_temp;
|
|
|
|
|
Yes, but I don't know what the size is in the loop and I'm using the Array.Resize to make it grow. That seems to be slow and inefficient. I would rather only work with one array since all I'm doing with the temp one is using it to recreate the actual array when I create a new copy with a bigger size. The generic list would take care of all that I hope.
|
|
|
|
|
Is there a maximum number of elements that could be produced in the loop known in advance?
|
|
|
|