Version

SetCount(Int32,Boolean) Method

Sets the row count to the specified count. If the new count is greater than the current count, new rows are added at the end of the collection. If the new count is less than the current count, rows are removed from the end of the collection.
Syntax
'Declaration
 
Public Overloads Sub SetCount( _
   ByVal newCount As Integer, _
   ByVal forceNotifyListReset As Boolean _
) 
public void SetCount( 
   int newCount,
   bool forceNotifyListReset
)

Parameters

newCount
The new count of the collection.
forceNotifyListReset
If the count is different, SetCount always fires ListChanged notification with Reset as the ListChanged type on the IBindingList implementaion so the controls bound to this data source reload the data and refresh themselves. However if the count is the same, this method by default doesn't fire the ListChanged notification. Specify true for the forceNotifyListReset parameter to force this method to fire ListChanged even when the new count is the same as the old count.
Remarks

Note: SetCount method does not raise add (RowAdding, RowAdded) or delete (RowDeleting, RowDeleted) events when it does add or remove items.

Example
Following code shows various methods and properties available on UltraDataRowsCollection object for manipulating the row collection.

Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinDataSource


    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
        Dim ds As UltraDataSource = New UltraDataSource()

        Dim col1 As UltraDataColumn = ds.Band.Columns.Add("ID", GetType(Integer))
        Dim col2 As UltraDataColumn = ds.Band.Columns.Add("Col2", GetType(String))

        Dim row As UltraDataRow
        Dim i As Integer
        For i = 0 To 5 - 1
            ' Look below where we call the Insert method for explanation on 
            ' what raiseAddEvents parameter does.
            row = ds.Rows.Add(True, New Object() {i, "Val " & i})
        Next

        ' Insert a row at index 0. A new row will be created and added to the
        ' collection at the specified index. RaiseAddEvents parameter of Add and
        ' Insert methods indicates whether the UltraDataSource should raise it's
        ' own RowAdding and RowAdded events. It does not indicate whether
        ' IBindingList.ListChanged event is raised or not.
        ' IBindingList.ListChanged event will always be raised regardless of the
        ' value of this parameter. This is useful when you have some logic in
        ' those event handlers for initializing new rows and you want that logic
        ' to be executed for the new row that you are inserting. If you use the
        ' overloads of Add or Insert that do not take raiseAddEvents parameter
        ' then add events won't be raised.
        row = ds.Rows.Insert(0, False, New Object() {-1, "Val -1"})

        ' Remove the inserted row. RaiseDeleteEvents parameter is analogous to
        ' the raiseAddEvents parameter of the Add and Insert methods. Look above
        ' where we call Insert for an explanation.
        row.ParentCollection.Remove(row, False)

        ' To check if a row is in a collection, use the Contains method.
        ' Following should print out false since the row has been deleted.
        Debug.WriteLine("Is deleted row in collection ? " & row.ParentCollection.Contains(row))

        ' A deleted row will have the index of -1. Following should print out -1
        ' since the row is not in the collection anymore. Row's Index property
        ' and IndexOf methods give the same results.
        Debug.WriteLine("Deleted row's index is " & row.Index)
        Debug.WriteLine("Deleted row's index is " & row.ParentCollection.IndexOf(row))

        ' You can also use the RemoveAt method to remove a row by specifying the 
        ' index of the row instead of the row itself.
        ds.Rows.RemoveAt(0, False)

        ' Print out the row count. This should print 4 as the row count since we
        ' added 5 using Add method in the for loop above and then added one
        ' using the Insert method above and then removed two using Remove and
        ' RemoveAt methods each.
        Debug.WriteLine("Row count = " & ds.Rows.Count)

        ' You can remove all rows from a row collection using Clear method. This
        ' is more efficient than deleting individual rows using Remove or
        ' RemoveAt methods.
        ds.Rows.Clear()

        ' You can use the SetCount method to add multiple rows at once. This can
        ' be more efficient than adding individual rows using Add method when
        ' adding a lot of rows.
        ds.Rows.SetCount(5)

        ' Add another 5 rows by setting the count to 10. Previously we added 5
        ' rows when we called SetCount( 5 ) above. Calling SetCount with 10 will
        ' add another 5 rows so that the new count becomes 10.
        ds.Rows.SetCount(10)

        ' Following line should print out 10.
        Debug.WriteLine("Row count = " & ds.Rows.Count)

        ds.Rows.SetCount(100000)

        ' Following line should print out 100000.
        Debug.WriteLine("Row count = " & ds.Rows.Count)
    End Sub
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinDataSource;
using System.Diagnostics;


		private void button1_Click(object sender, System.EventArgs e)
		{
			UltraDataSource ds = new UltraDataSource( );

			UltraDataColumn col1 = ds.Band.Columns.Add( "ID", typeof( int ) );
			UltraDataColumn col2 = ds.Band.Columns.Add( "Col2", typeof( string ) );

			UltraDataRow row;
			for ( int i = 0; i < 5; i++ )
			{
				// Look below where we call the Insert method for explanation on 
				// what raiseAddEvents parameter does.
				row = ds.Rows.Add( true, new object[] { i, "Val " + i } );
			}

			// Insert a row at index 0. A new row will be created and added to the
			// collection at the specified index. RaiseAddEvents parameter of Add and
			// Insert methods indicates whether the UltraDataSource should raise it's
			// own RowAdding and RowAdded events. It does not indicate whether
			// IBindingList.ListChanged event is raised or not.
			// IBindingList.ListChanged event will always be raised regardless of the
			// value of this parameter. This is useful when you have some logic in
			// those event handlers for initializing new rows and you want that logic
			// to be executed for the new row that you are inserting. If you use the
			// overloads of Add or Insert that do not take raiseAddEvents parameter
			// then add events won't be raised.
			row = ds.Rows.Insert( 0, false, new object[] { -1, "Val -1" } );

			// Remove the inserted row. RaiseDeleteEvents parameter is analogous to
			// the raiseAddEvents parameter of the Add and Insert methods. Look above
			// where we call Insert for an explanation.
			row.ParentCollection.Remove( row, false );

			// To check if a row is in a collection, use the Contains method.
			// Following should print out false since the row has been deleted.
			Debug.WriteLine( "Is deleted row in collection ? " + row.ParentCollection.Contains( row ) );

			// A deleted row will have the index of -1. Following should print out -1
			// since the row is not in the collection anymore. Row's Index property
			// and IndexOf methods give the same results.
			Debug.WriteLine( "Deleted row's index is " + row.Index );
			Debug.WriteLine( "Deleted row's index is " + row.ParentCollection.IndexOf( row ) );

			// You can also use the RemoveAt method to remove a row by specifying the 
			// index of the row instead of the row itself.
			ds.Rows.RemoveAt( 0, false );

			// Print out the row count. This should print 4 as the row count since we
			// added 5 using Add method in the for loop above and then added one
			// using the Insert method above and then removed two using Remove and
			// RemoveAt methods each.
			Debug.WriteLine( "Row count = " + ds.Rows.Count );

			// You can remove all rows from a row collection using Clear method. This
			// is more efficient than deleting individual rows using Remove or
			// RemoveAt methods.
			ds.Rows.Clear( );

			// You can use the SetCount method to add multiple rows at once. This can
			// be more efficient than adding individual rows using Add method when
			// adding a lot of rows.
			ds.Rows.SetCount( 5 );

			// Add another 5 rows by setting the count to 10. Previously we added 5
			// rows when we called SetCount( 5 ) above. Calling SetCount with 10 will
			// add another 5 rows so that the new count becomes 10.
			ds.Rows.SetCount( 10 );

			// Following line should print out 10.
			Debug.WriteLine( "Row count = " + ds.Rows.Count );

			ds.Rows.SetCount( 100000 );

			// Following line should print out 100000.
			Debug.WriteLine( "Row count = " + ds.Rows.Count );
		}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also