SplitTypeExtensions.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace SqlSugar
  7. {
  8. public static class SplitTableInfoExtensions
  9. {
  10. public static IEnumerable<SplitTableInfo> InTableNames(this List<SplitTableInfo> tables, params string[] tableNames)
  11. {
  12. return tables.Where(it => tableNames.Any(y => y.Equals(it.TableName, StringComparison.OrdinalIgnoreCase)));
  13. }
  14. public static IEnumerable<SplitTableInfo> ContainsTableNames(this List<SplitTableInfo> tables, params string[] tableNames)
  15. {
  16. List<SplitTableInfo> result = new List<SplitTableInfo>();
  17. foreach (var item in tables)
  18. {
  19. if (tableNames.Any(it => item.TableName.ObjToString().ToLower().Contains(it.ObjToString().ToLower())))
  20. {
  21. result.Add(item);
  22. }
  23. }
  24. return result;
  25. }
  26. public static IEnumerable<SplitTableInfo> ContainsTableNamesIfNullDefaultFirst(this List<SplitTableInfo> tables, params string[] tableNames)
  27. {
  28. List<SplitTableInfo> result = new List<SplitTableInfo>();
  29. foreach (var item in tables)
  30. {
  31. if (tableNames.Any(it => item.TableName.ObjToString().ToLower().Contains(it.ObjToString().ToLower())))
  32. {
  33. result.Add(item);
  34. }
  35. }
  36. if (!result.Any()&& tables.Any())
  37. {
  38. result.Add(tables.First());
  39. }
  40. return result;
  41. }
  42. }
  43. }