using System.Collections.Generic;
public enum TipoOpcionImplicacion_AsignacionTextoInformacion
public class ComparadorTextosInformacion : IEqualityComparer<string>
public TipoOpcionImplicacion_AsignacionTextoInformacion TipoOpcionCondicion_TextosInformacion { get; set; }
public ComparadorTextosInformacion(TipoOpcionImplicacion_AsignacionTextoInformacion tipoOpcion)
TipoOpcionCondicion_TextosInformacion = tipoOpcion;
public bool Equals(string x, string y)
switch (TipoOpcionCondicion_TextosInformacion)
case TipoOpcionImplicacion_AsignacionTextoInformacion.ContengaTexto:
return x.Replace("\t", string.Empty).Trim().ToLower().Contains(y.Replace("\t", string.Empty).Trim().ToLower());
case TipoOpcionImplicacion_AsignacionTextoInformacion.EmpiecenCon:
return x.Replace("\t", string.Empty).Trim().ToLower().StartsWith(y.Replace("\t", string.Empty).Trim().ToLower());
case TipoOpcionImplicacion_AsignacionTextoInformacion.TerminenCon:
return x.Replace("\t", string.Empty).Trim().ToLower().EndsWith(y.Replace("\t", string.Empty).Trim().ToLower());
case TipoOpcionImplicacion_AsignacionTextoInformacion.TextoDistinto:
case TipoOpcionImplicacion_AsignacionTextoInformacion.TextoIgual:
return x.Replace("\t", string.Empty).Trim().ToLower().Equals(y.Replace("\t", string.Empty).Trim().ToLower());
public int GetHashCode(string obj)
return obj.GetHashCode();
public static void Main()
Console.WriteLine("Intersections demo\n");
var listOne = new [] {"One","Two", "Three"};
var listTwo = new [] {"One1","Two2", "Three"};
var comparer = new ComparadorTextosInformacion(TipoOpcionImplicacion_AsignacionTextoInformacion.TextoIgual);
var intersections = listOne.Intersect(listTwo, comparer).ToList();
if (!intersections.Any())
Console.WriteLine("\nNo intersections.");
Console.WriteLine("\nPlease find intersections below:");
foreach (var item in intersections)
Console.WriteLine(" - {0}", item);