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.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011