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.
«gennaio»
domlunmarmergiovensab
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234