.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

Foreach variable scope and memoray allocation - Which is Better ?

Posted By:      Posted Date: September 23, 2010    Points: 0   Category :.NET Framework

Can any one help to to understand the perfomace difference between the code snippet 1 and 2, if any ?
Which way is better ? When will the product object eligible of being garbage collected in both the cases?
Snippet 1

pubic List<Product> GetProductDetails()
  List<Product> pList = new List<Product>(); 

  foreach(Category aCategory in Categories)
       Product aProduct = new Product( aCategoty.Name);  
  return list  ;

Snippet 2
pubic List<Product> GetProductDetails()
  List<Product> pList = new List<Product>(); 

  Product aProduct = null;  
  foreach(Category aCategory in Categories)
     aProduct = new Product( aCategoty.Name);  
  return list  ;



View Complete Post

More Related Resource Links

Foreach File Enumerator - Use Variable to Set FileSpec Property

Hello All: Can anyone give guidance on how to set the mask for a Foreach File Enumerator programmatically? I have a DB that has a list of masks. I am retrieving that into an ADO recordset. For each record I retrieve the value into a variable. I would like to look at a directory and move all files that begin with the chars for each item in my recordset variable. TIA - Tom

how to store the values in a object variable (package level scope) in a script component

I have declared a variable of object type with package level scope.  I want to assign values to this variable inside a script component.  My object should hold 5 columns in a row.  How to implement this ?

I don't know how to capture the variable value which is currently being used within the foreach loo


I have created a foreach loop similar to that in http://www.codeproject.com/KB/database/foreachadossis.aspx.

The variable which the foreach loop uses is an object data type.

I don't know how to capture the variable value which is currently being used within the foreach loop.

Does anybody have any tips?

Mr Shaw

Data transformation: Sharing object/variable scope between form and dialog (VS2010/VB)


I am writing a class to provide data transformation between two databases with different schema, and have a windows form which tries to do the data translation work, and a modal showDialog which pops up to halt and tweak the process when errors are detected.

The dialog needs to share, tweak, and pass control information to the main form to tweak the transform parameters until everything works OK.  My question is how to best achieve the data sharing since the dialog has separate data scope.  I have been using declarations like the folllowing to successfuly share data and avoid creating public variables:

     Friend importStatusMessage as string

But with all the variables the dialog needs to tweak, it's becoming messy.  Is there any way to declare the entire dialog as 'Friend' so that main form data is in scope to the dialog?  Or, maybe create an object with properties to pass the data, and share only the object?



How do I show value of variable from database without using foreach loop?



How do I print out a value of variable from database without using foreach loop?

This is how I do it today but I wish to know how to avoid using foreach loop.

var db= Database.Open("mydatabase");
            var SQLSELECT = "SELECT COUNT (*) as Number FROM table;";
            var data3 = db.Query(SQLSELECT);
            foreach(var row in db.Query(SQLSELECT))
                if(@row.Number > 0){
                    <p>The number is @row.Number</p>

Hope you can help me!

Many thanks!

OLED DB data source not seeing variable with scope of containing sequence container

I'm using SQL Server 2008 R2. I have a sequence container in which an execute SQL task assigns a value to a variable, the last task in the sequence container is a data flow task with a single OLEDB source (SQL Server 2000) and destination. The source in the data flow uses the variable which has the scope of sequence container, however when the query in the data flow task source is executed, its as if its seeing a null value for the variable, can someone please advise as to what I'm doing wrong here. 

Local variable scoping in C#

In my previous post, Compiler-generated scopes for local variable declarations, I briefly touched on the issue of multiple meanings applied to the same name. In this post, I'll aim to flush out the compiler's rules with regards to binding names in their local scopes.

Compiler-generated scopes for local variable declarations

I was tasked with understanding and fixing a bug on error reporting with foreach iteration variables the other day, and it got me thinking about local variable scoping rules in C# in general. First, the bug.

Retrieving a variable from a previous page



I'm looking to have a search page where a user will select an item from a listview, then then taken to another page that wil display data based on their original selection.

A user will type in a string and be presented with a list of usernames that are like that string, when they select a user name who's profile they would like to view I would like the page that they're taken to, to be that users profile.

How would I transfer the variable from the search page to the profile page, and when I work on the profile page, how can I access that variable?


Embeb a variable number of videos


I need to provide some alternate content for my non-Flash users.

I have a directory of video files that is scanned using the DirectoryInfo() function, and I want to use the results to embed all files ending in ".mov" in QuickTime players on a web form.

How would you approach this? Right now I am using the count on the array of videos to determine how many times to repeat the embed code.  But this seems inelegant.

Is there a way to have a single QuickTime player.ascx control that gets duplicated according to the number of videos available for display?

How to take value of bound field of grid in a variable or in a textbox.


How to take value of bound field of grid in a variable or in a textbox.

 I m using this code in .aspx page for grid.

<asp:GridView ID="Grd_Mprocess" runat="server" AutoGenerateColumns="False"

                      Width="100%" AllowPaging="True"


                      AllowSorting="True" PageSize="5"  >

                 <RowStyle CssClass="odd" />


<asp:BoundField HeaderText="DOC_TYPE_PK" DataField="DOC_TYPE_PK"  Visible="true" >


  <asp:TemplateField HeaderText="DOC TYPE ID" Visible="true">  &nbs

'Model' cannot be declared in this scope


I have a complex partial view (ugly stuff), the view page has this line:- 

<% Html.RenderPartial("PartialIndicatorWeighting", indicator);%>
and inside the ugly partial view I have this,
<td><%: Model.Active %><%: Html.CheckBoxFor(Model => Model.Active)%></td>
I'm trying to display a list of checboxes to show if the item is active or not, I get the following error:-
A local variable named 'Model' cannot be 

Hidden variable has no value


I know I have a valid solution, but the js is telling me that the value in the hdnRecordSaved variable has no value!
Even when I specify in my function the following, it still tells me it has no value:
var myTextField = document.getElementById('hdnRecordSaved');

When I put the full value of the variable in (ctl00_ctl00_cphTopCenter_cphCenter_hdnRecordSaved.value), I get the correct contents back ("1"), which I set in my code behind. However, I would prefer to just put the short name in since the masterpages may change, etc. Unfortunately, I know I can get around this with VS2010, but we are using VS2008.

What am I doing wrong with the js naming conventions that can't give me the contents? Here is my below js.

<asp:Panel ID="pnlMapFields" runat="server" ScrollBars="Both" Height="430px">

<telerik:RadTreeView ID="RadTreeView1" runat="server" DataTextField="Description"

DataFieldParentID="MapFieldparentID" DataF

How to retrieve data from SqlDataSource and pass to a variable?


Hi there,

I have a page in my website where there is very little code-behind. I only have two lines of code in Page_Load() and the rest of the code is declarative ASP.NET code. I have a FormView control which uses a SqlDataSource to get some order information. The SqlDataSource calls a stored procedure called usp_GetOrderDetails, here's the code for the SqlDataSource:

    <asp:SqlDataSource ID="sdsFormOrderDetails" runat="server" 
ConnectionString="<%$ ConnectionStrings:ForexDB %>"
ProviderName="<%$ ConnectionStrings:ForexDB.ProviderName %>"
SelectCommand="usp_GetOrderDetails" SelectCommandType="StoredProcedure"
UpdateCommand="usp_UpdateOrder" UpdateCommandType="StoredProcedure"
<asp:ControlParameter Name="orderId" ControlID="grdOrders" PropertyName="SelectedDataKey.Value" />
<asp:ControlParameter Name="orderId" ControlID="frmOrderDetails" PropertyName="SelectedValue" />

.NET Matters: Scope and More


This month Stephen Toub explains how you can get some of the functionality found in the TransactionScope class in your own classes.

Stephen Toub

MSDN Magazine September 2006

Visual C++ 6.0: Don't Let Memory Allocation Failures Crash Your Legacy STL Application


Most C++ developers make extensive use of the Standard Template Library (STL) in their code. If you are one of them and are using STL and Visual C++ 6.0 directly out of the box, your application is at high risk of crashing under low memory conditions. The problem arises because checking for failure of operator new is such an uncommon practice. To make things worse, when new does fail, the response is not standard. Some language compilers return NULL while others throw an exception.In addition, if you are using STL in an MFC project, be aware that MFC has its own set of rules. This article discusses these problems, explains how the default behavior has changed in Visual C++ .NET 2003, and outlines the changes you must make if you're using Visual C++ 6.0 so that you can safely use the STL when operator new fails.

James Hebben

MSDN Magazine September 2003

Session Variable issues


Hello everyone,

I ran into an issud to day with the follwoing code.  The strPanelOrder session variable is false, however, once it goes into the next if statement and sets the strTrimOrder to True, it changes the strPanelOrder session varialbe to true as well.  Why is this and how to I stop that from happening?

If Session(strPanelOrder) Is "False" Then
                If (strItemNumber.Length() = 10) And (strItemNumber.Substring(0, 2) = "FS" Or strItemNumber.Substring(0, 2) = "FC" Or strItemNumber.Substring(0, 2) = "DS" Or strItemNumber.Substring(0, 2) = "DC") Then
                    Session(strPanelOrder) = "True"
                End If
End If
If Session(strTrimOrder) Is "False" Then
               If (strItemNumber.Substring(4, 1) = "T") And (strItemNumber.Substring(0, 2) <> "AC") And (strItemNumber <> "Length") Then
                    Session(strTrimOrder) = "True"
                End If
End If


Thanks in advance for taking a look at this.



ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend