Posizione di un DataRow (Fx 2.0)

Nel lontano settebre 2004 postavo "Posizione di un DataRow" dove proponevao una mia versione di un metodo helper per individuare la posizione ordinale di una Datarow in una Datatable. Oggi mi hanno fatto notare che tale metodo nel fx 2.0 non funziona. Ammetto che mi sono pigramente fidato e non ne ho controllato il motivo... tuttavia ho indagato tra i meandri di MSDN per scoprire se il Framework 2.0 poteva offrire qualcosa di interessante per lo scopo.

DataRowCollection.IndexOf Method 
Note: This method is new in the .NET Framework version 2.0.
http://msdn2.microsoft.com/en-us/library/system.data.datarowcollection.indexof(VS.80).aspx

Posso quindi modificare il metodo GetRowId come segue:

public static int GetRowId(DataRow row)
{
 //FieldInfo rowFieldsInfo = typeof(DataRow).GetField("rowID", BindingFlags.NonPublic | BindingFlags.Instance);
 //return (int) rowFieldsInfo.GetValue(row);

 //PropertyInfo protectedListProp =  
 //  typeof(DataRowCollection).GetProperty("List", BindingFlags.NonPublic | BindingFlags.Instance);
 //IList rows = (IList) protectedListProp.GetValue(row.Table.Rows, null);
 //return rows.IndexOf(row);

 return row.Table.Rows.IndexOf(row);
}

La soluzione documentata è sempre la migliore e sono bene contento di poterla sostituire.

o0O(...ma M.rkino non fare il pigro, in fondo sei comunque più che curioso di sapere come mai la vecchia soluzione non funziona più...)

posted @ giovedì 22 febbraio 2007 23:46

Print
Comments have been closed on this topic.
«ottobre»
domlunmarmergiovensab
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789