Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Code Question
Message
From
01/09/2015 07:27:53
John Baird
Coatesville, Pennsylvania, United States
 
 
General information
Forum:
ASP.NET
Category:
Other
Title:
Environment versions
Environment:
C# 4.0
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01623961
Message ID:
01624073
Views:
66
If you're worried about speed, shouldn't you drop the linq statement to list, and use the list in the foreach control. That way the linq is not executed for each iteration of the foreach.




>>>>>>>I think there's a simple answer to this but I can't think of it or find it.
>>>>>>>I want to set the character casing of all textboxes on a form to upper.
>>>>>>>I get this far and can't access the charactercasing property of the control.
>>>>>>>Any help appreciated.
>>>>>>>
>>>>>>>
>>>>>>>      foreach (Control c in parentForm.Controls)
>>>>>>>            {
>>>>>>>                if (c is TextBox)
>>>>>>>                {
>>>>>>>
>>>>>>>                }
>>>>>>>            }
>>>>>>>
>>>>>>
>>>>>>Did you try instead (not tested)
>>>>>>
>>>>>>var c as TextBox
>>>>>>
>>>>>>if (c!=null)
>>>>>> {
>>>>>>
>>>>>>  }
>>>>>>
>>>>>>See
>>>>>>
>>>>>>https://msdn.microsoft.com/en-us/library/cscsdfbt.aspx?f=255&MSPPError=-2147217396
>>>>>
>>>>>
>>>>>Thanks, Naomi
>>>>>
>>>>>I woke up from my trance and this did it
>>>>>
>>>>>
>>>>>
>>>>> foreach (Control c in parentForm.Controls)
>>>>>            {
>>>>>                if (c is TextBox)
>>>>>                {
>>>>>                    TextBox tb = c as TextBox;
>>>>>                    tb.CharacterCasing = CharacterCasing.Upper;
>>>>>                }
>>>>>            }
>>>>>
A Linq way:
foreach (Control c in parentForm.Controls.Where(x=>x is TextBox))
>>>>            {
>>>>                ((TextBox)c).CharacterCasing = CharacterCasing.Upper;
>>>>            }
>>>
>>>Thank you, Viv.
>>>I couldn't think of this syntax.
>>>
>>>((TextBox)c).CharacterCasing = CharacterCasing.Upper;
>>>
>>>The one I used worked but I prefer this one and I substituted it.
>>
>>A better LINQ way:
>>
foreach (TextBox c in parentForm.Controls.OfType< TextBox>())
>>            {
>>                c.CharacterCasing = CharacterCasing.Upper;
>>            }
Good. I'd forgotten about OfType(). Don't know if it's any faster because, internally, I think it does a 'is X' anyway ?
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform