So I discovered the .net array class has a built-in binarysearch method. Do I want to use this all the time (that is, when I meet the prerequisite that the array is sorted) or are there times when I would want to just iterate through the elements starting at 0 and incrementing until I find what I'm looking for? Is there an optimal size that recommends using one way or the other?
I need to sort an array containing a list of words and search the same using binarysearch. For certain reasons, the word-list must always be sorted using the sorting-rules of "en-US" i.e. American Regional Settings. The code will run under various international Operating Systems and of course this will mean that the word-list will be sorted differently according to the local Regional Settings in use. One problem could arise on a computer/device running with Lithuanian Regional Settings. Why? Because the letter "Y" in most languages is sorted like X-Y-Z while in Lithuanian, the sort order is I-Y-J. This behavior would create havoc to my program.
[Code]...
However, in means of flexibility I believe Guffa's answer is the best one. Why? Let's use another example:In German, the letter Ö is sorted Ö-X-Z while in Swedish and Finnish, the order is X-Z-Ö. In Estonian the sort order is Z-Ö-X. Complicated, isn't it? Guffa's solution will let me force Swedish sorting-oder (changing CultureInfo) on a device running under German Regional settings. Using Comparer.DefaultInvariant with its association to English wouldn't help in this case, probably the letter Ö would end up with O. Therefore my vote will go to Guffa.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s As String() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}
I'm using a binary search to return the index of a value in an array but on this occasion it return -2 when I'm expecting a positive 2 to be returned.
If cBudgetID.Contains(AdditionalCostBudgetID) Then Pos1 = cBudgetID.BinarySearch(AdditionalCostBudgetID) cCost.Item(Pos1) += AdditionalCost ElseIf AdditionalCostBudgetID <> 0 Then cBudgetID.Add(AdditionalCostBudgetID) cCost.Add(AdditionalCost) End If
I have a windows app and I'm trying to cache images in memory. I have:-
[code]...
I think I have to sort the array to be able to use binarysearch.So I need to sort the arraylist on TileDetails.TileURL(if possible) and then binarysearch on it.
I've got my text files read into an array.Which was step 1 .My code so far is:
Note: textSKU is just a text box. No event handler associated.
Private Sub BtnSeacrch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSeacrch.Click Dim objCA As New System.IO.StreamReader(ofdCA.FileName) System.IO.StreamReader(ofdWarehouse.FileName)[code]....
The message box is mostly just to test to see if it's finding the line. And the problem is it's returning -136.Which I'm pretty sure can't be a value in the array ( actually very sure, as I tested it just to be sure, and it says it's out of bounds).I know it's in the array, as when I change returnvalueCA to a...7 for example, it outputs the correct line from the .csv file.
Edit: Index was outside the bounds of the array. is what the debugger says, as it's trying to output the value of SKUSheet(-136)
error 1: Optional parameters must specify a default value - error location "lastEl As object) As Long" - closing bracket is highlighted
Error 2: expression expected - error location "Optional lastEl As Variant) As Long" - where optional is highlighted.
Error 3: comma, ')', or a valid continuation expected - error location "strCycleIDarray As Variant" - where "as" is highlighted
Error 4: comma, ')', or a valid continuation expected - error location "strSearchCycleIDvalueArray As Variant" - where "as" is highlighted
Error 5: Ismissing is not declared and may not be accessible due to its protection level - error location "If IsMissing(lastEl) Then lastEl = UBound(strCycleIDarray)" - where "IsMissing" is Highlighted.
I dont have an idea where to start solving these errors and i cant debug this search as the errors are there.If you dont understand the errors in the format i have put them in just copy and paste the code into a windows form using a button as an activiator.
Originally i wanted to ask if it's faster to sort Integers than Strings.But i have answered this question myself and i'm suprised of the big difference.Why is sorting and BinarySearch Integers as much faster compared to Strings?
The (VB.Net) Test with 1.000.000 Int32/Strings:
Private Function CheckIntBinarySearch() As TimeSpan Dim watch As New System.Diagnostics.Stopwatch() Dim rnd As New Random(Date.Now.Millisecond) Dim intCol1 As New List(Of Int32)
[code]....
Consider having large collections of "String-Integers"("1","2","3",...). Would it even be better to parse them to integers before sorting and searching them? What is the cost of parsing Strings to integers?
I wonder if anyone can help me - I've not done much with reflection but understand the basic principles.What I'm trying to do:I'm in the process of developing a class that gathers a lot of information about the local system, network, etc... to be used for automated bug reporting. Instead of having to change my test harness every time I add a new property, I'd (ideally) like to be able to serialise the lot as an XML string and just display that in a textbox.
Unfortunately, the Framework won't use the default XML serializer on read-only properties (which almost all of mine are) as they wouldn't deserialize properly [Not sure I agree with the assumption that anything serialized must be de-serializable - MS says this is a feature "by design" which I suppose I can understand - Perhaps a tag to indicate that it should be serialized anyway would be advantageous?]
The initial approach was to make properties gettable and settable (with a throw exception on the setter) but the amount of work tidying this up afterwards seems a little excessive and I would want the properties to be read-only in the final version.What I need help with:My current plan is to use reflection to recursively iterate through each (public) property of my topmost gathering class. The problem is, the samples I've seen don't handle things recursively. Additionally, I only want to inspect an object's properties if it's in one of my assemblies - Otherwise just call .ToString on it.
If I don't have the inspection limited to my assembly, I assume I'll get (say) a string which then contains a Length which in turn will have .Tostring method.For the purposes of this project, I can almost guarantee no circular references within my code and as this will only be used as a development tool so I'm not too concerned about it running amok now and then.
This works. In my controller, I can access my jsonObject like this: obj.ID '123
But I haven't got an idea yet how to iterate through all properties. I can get all member names as a IEnumerable String Collection (obj.GetDynamicMemberNames()), but how do I use the TryGetMember method to access the value of a member ?
I have a VB Web Application with a bunch of textboxes on it in Default.aspx (Using the basic template in Visual Web Designer 2010 Express). I'd like to iterate through those textboxes using some sort of VB solution if at all possible and clear them when the user presses a button. I've tried using something like this:
Dim cControl As Control For Each cControl in Me.Controls If cControl Is TextBox Then
[This is a simplified example] I have a collection ("myCollection") in which exists three entries: ("hello", "goodbye", "welcome"). I want to iterate through the collection and if in the collection there is the entry "welcome" I want to take one action, if that entry doesn't exist I want to do something else. Like this (pseudo):
I need some help with a LINQ query in VB.Net, please.[code]This works, and returns me the data I need to work with. Now I want to iterate through the groups, using a For Each construct. like this: For Each x In drivers Next...However, the compiler is barking at me, telling me that the "'x' is not accessible in this context because it is 'Friend'."
I have a simple XAML file with a grid in it and textboxes. But when using my code it does not find the textboxes by iteration.
VB.Net:
Dim ctl As FrameworkElement = Me.MainWindow
Code:
Dim ChildrenCount As Integer = VisualTreeHelper.GetChildrenCount(ctl) 'ChildrenCount is always zero For i As Integer = 0 To ChildrenCount - 1 Dim Child As FrameworkElement = VisualTreeHelper.GetChild(ctl, i)
I use the BS Filter and would like to iterate the filtered dataset of the DataTable using the Bindingsource.
I know I can do a MoveFirst and the MoveNext and each time using the BS.Position get the correct row in the underlying DataTable. But how do I know when the sets ends? I'm sure there must be such a property, but what is it?
if I run the following code,For each itm in MyList Next if the list is nothing i got an error..Is there a better way to deal with list=nothing than using a condion like [code]
I have a structure with types ranging from thread's to control.what im looking for is a easy way to iterate through those item like For eachbut i couldn't get for each to workis there a way to do it
is there is any direct method or function in array class that can check if any given byte array is a subarray of other array?or should i loop through the each byte of main array to see if smaller array exists in that or not?
I'm debuging an complex calculation object in my project, and I'd like to show its various and many properties in a textbox, to make my tests easier.
Can I do something like
for each p as someKindOfProperty in MyObject1 debug.print(p.name & " - " & debug.print p.value) textbox1.text = textbox1.text & vbcrlf & p.name & " - " & p.value next
I have List (Of Report). Report has 90 properties. I dont want write them each and every propertiy to get values for properties. Is there any waht to get propeties values from the List
Ex: Dim mReports as new List(Of Reports) mReport = GetReports()
For each mReport as Report In mReports 'Here I want get all properties values without writing property names next
We have a common component in our source which contains all the enums (approx 300!) for a very large application.Is there any way, using either C# or VB.NET, to iterate through all of them in order to perform an action on each one?
How to iterate all "public string" properties in a .net class is almost relevant but the enums I am dealing with are a mix of types.
I have List (Of Report). Report has 90 properties. I dont want write them each and every propertiy to get values for properties. Is there any waht to get propeties values from the ListEx:
Dim mReports as new List(Of Reports) mReport = GetReports() For each mReport as Report In mReports
Lets say I have 30 text fields in a Frame on my form, and I want to set them all to disable (so users can't edit them).Is there an easy way to walk through those fields without having to create an array of text fields?
I.E., in ... VB 6, with an array of text fields, I can do something like this: For i = 0 to 10 txtfield(x).enabled = true. Next i
Is there something in VB.NET where I won't have to use an array of controls, something like this (assuming all txt fields are in a frame):