[Mono-bugs] [Bug 82345][Blo] Changed - InternalArray__set_Item throws inappropriate NotSupportedException

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Mon Aug 6 16:41:35 EDT 2007

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by jeff.brown at gmail.com.


--- shadow/82345	2007-08-06 16:30:04.000000000 -0400
+++ shadow/82345.tmp.25525	2007-08-06 16:41:35.000000000 -0400
@@ -1,14 +1,14 @@
 Bug#: 82345
 Product: Mono: Class Libraries
 Version: 1.2
+OS: unknown
 OS Details: 
 Status: NEW   
+Severity: Unknown
 Priority: Blocker
 Component: System
 AssignedTo: mono-bugs at ximian.com                            
 ReportedBy: jeff.brown at gmail.com               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
@@ -45,6 +45,31 @@
 Should work fine.  An array cannot be extended but its elements can be
 How often does this happen? 
 Always.  Currently blocking development for Mono platform.
+------- Additional Comments From jeff.brown at gmail.com  2007-08-06 16:41 -------
+Here is the code that triggers this problem.  We call
+ConvertAllToArray with two different reference types as type
+parameters and a delegate for conversion.  The failure occurs in the
+assignment to the output IList<T>.
+public static TOutput[] ConvertAllToArray<TInput,
+TOutput>(ICollection<TInput> input,                                  
+                                Converter<TInput, TOutput> converter)
+    TOutput[] output = new TOutput[input.Count];
+    ConvertAndCopyAll(input, output, converter);
+    return output;
+public static void ConvertAndCopyAll<TInput,
+TOutput>(ICollection<TInput> input, IList<TOutput> output,           
+                                                  Converter<TInput,
+TOutput> converter)
+    int i = 0;
+    foreach (TInput value in input)
+        output[i++] = converter(value);

More information about the mono-bugs mailing list