visual ruta propiedades openfiledialog1 openfile obtener desde cualquier con archivo abrir c#

c# - ruta - openfiledialog visual basic



¿Hay una interfaz tipo ISet de solo lectura? (3)

¿Qué hay de la IImmutableSet<T> ?

Me pregunto si hay alguna interfaz de solo lectura de tipo set que declare un método Contains en C #. No quiero simplemente implementar la interfaz ISet porque tiene demasiados métodos innecesarios.

La implementación de mi idea sería como esta:

public class PositiveInt : IReadOnlySet<Int32> { public bool Contains(Int32 n){ return n > 0; } } public class CraEmployeeNames:IReadOnlySet<String> { public bool Contains(String n){ return !String.IsNullOrWhiteSpace(n) && n.StartsWith("Cra"); } }

Puedo definir mi propio IReadOnlySet , pero quiero asegurarme de que no haya uno incorporado antes que yo.


No, no hay una IReadOnlySet<T> en C #. Según las necesidades que ha descrito, creo que debe crear su propia IContains<T> .

public interface IContains<T> { bool Contains(T item); }

Tenga en cuenta que esto no se puede agregar a las colecciones existentes como List<T> o HashSet<T> , y no contiene otras operaciones similares a conjuntos como Count o enumeración. Podrías usarlo como:

public void TestContains<T>(IContains<T> container, T item) { if (container.Contains(item)) { //something } else { //something else } }


Se encuentra en el espacio de nombres Microsoft.SqlServer.Management.Sdk. Ver:

https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.sdk.sfc.ireadonlyset.aspx

No sé por qué está ahí, en lugar de con el resto de las interfaces IReadOnlyYadaYada <> en .NET. Probablemente algún error. Y probablemente, el miedo a la colisión es la razón por la que no lo han puesto en .NET. Que es una pena.

Además, vea esta pregunta: ¿Por qué la Lista implementa IReadOnlyList en .NET 4.5?