У меня есть DataTable
, который заполняется с использованием SQL-запроса. Если значения этого DataTable
не обрезаны (слева и справа), программа не может найти правильные совпадения. Поэтому я ищу эффективный запрос LINQ (не два вложенных оператора foreach
), чтобы обрезать все значения в DataTable
и вернуть их чистую версию.Trim All Cells DataTable
ответ
Наиболее эффективный способ сделать это в базе данных, Fe:
SELECT RTRIM(LTRIM(ColumnName)) AS TrimmedColumn FROM TableName
Если вы должны сделать это с C# самый производительный способ простой цикл (LINQ также использует петли):
DataColumn[] stringColumns = table.Columns.Cast<DataColumn>()
.Where(c => c.DataType == typeof(string))
.ToArray();
foreach(DataRow row in table.Rows)
foreach(DataColumn col in stringColumns)
row.SetField<string>(col, row.Field<string>(col).Trim());
В общем, не используйте LINQ to , чтобы изменить источник. Запрос не должен вызывать побочные эффекты.
Спасибо! Я использую ваше решение вместо LINQ. – Disasterkid
Чтобы избежать ошибок нулевой ссылки, добавьте 'if (row [column]! = DBNull.Value)' –
Я не уверен, что вы можете применить оператор LINQ Select в DataTable и использовать Trim() для класса String для достижения своей цели. Но в качестве разработчика базы данных я бы предложил действовать в SQL Query и использовать поле Rtrim (Ltrim (field1)) AS1 в вашем запросе, чтобы избавиться от пробелов перед данным datatable.
- 1. asp.net grid view bulk update all cells
- 2. Непонятные шрифты datatable select all with paginator
- 3. Javascript для "show all dropdown" on datatable
- 4. strtolower (trim()) == strtolower (trim()) медленный
- 5. C# Excel Trim рабочий лист при переходе на datatable?
- 6. Правильный синтаксис для Range (Cells(), Cells())
- 7. Trim Character and Trim String - Python
- 8. UITableView Cells
- 9. VBA Select Filtered Cells
- 10. Cant Read Cells содержат «$» из Excel
- 11. Изменить TRIM to TRIM (заменить) - macro
- 12. Как определить гайки Trim в SQL TRIM
- 13. jQuery datatable with pagination select all checkboxes not working
- 14. Check All box не работает с JQuery DataTable версии 1.10.5
- 15. ActiveSheet.Range (Cells (х, у), Cells (ш, г)) Выберите не работает
- 16. Trim Padding From ByteArrayOutputStream
- 17. Looping Through All Cells в столбце и проверка того, содержит ли каждая ячейка строку в строке
- 18. Изображения UITableView Cells меняются?
- 19. Loop through cells dependents
- 20. HTML Merge Cells Form
- 21. UICollectionView reloadData ghost cells
- 22. Свойство default для cells()
- 23. Render cells in engine
- 24. NSTableView cells ontop заголовка
- 25. Swift Cells Not Displaying
- 26. MS excel Cells Соответствие
- 27. ios - UITableView duplicate cells
- 28. Синтаксис свойства Range .Cells
- 29. Merge Table Cells
- 30. UICollectionView Cells и Rasterizing
Не были бы ли вложенные заявления foreach хорошими и чистыми, почему у вас должен быть LINQ? –
Не будет ли обрезка в БД лучшим, то есть более эффективным решением? LINQ, конечно же, не будет больше __efficient__, чем цикл, просто более стильный. – TaW
Когда вы пытаетесь найти совпадение, вы можете обрезать в этот момент – jradich1234