fork download
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Reflection;
  6.  
  7. public static class Ext {
  8. public static IList<T> GetItems<T>(this ReadOnlyCollection<T> roc) {
  9. var prop = roc.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static ).FirstOrDefault(x => x.Name.Contains("Items"));
  10. return (IList<T>)prop.GetValue(roc, null);
  11. }
  12. }
  13.  
  14. public class Test
  15. {
  16. static List<int> l = new List<int> {1,2,3};
  17. static ReadOnlyCollection<int> Get()
  18. {
  19. return new ReadOnlyCollection<int>(l);
  20. }
  21.  
  22. public static void Main()
  23. {
  24. var list = Get().GetItems();
  25. list.Add(3);
  26. Console.WriteLine(l.Count());
  27. }
  28. }
Success #stdin #stdout 0.06s 35056KB
stdin
Standard input is empty
stdout
4