@@ -66,35 +66,40 @@ public SqlQueryExpression UnionAll(ISqlQueryExpression operand)
6666 // Constructors
6767
6868
69- internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , IEnumerable < string > columnNames )
69+ internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , ICollection < string > columnNames )
7070 : this ( dataTable , freeText , columnNames , ArrayUtils < string > . EmptyArray , null )
7171 {
7272 }
7373
74- internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , IEnumerable < string > columnNames , ICollection < string > targetColumnNames )
74+ internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , ICollection < string > columnNames , ICollection < string > targetColumnNames )
7575 : this ( dataTable , freeText , columnNames , targetColumnNames , null )
7676 {
7777 }
7878
79- internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , IEnumerable < string > columNames , SqlExpression topN )
80- : this ( dataTable , freeText , columNames , ArrayUtils < string > . EmptyArray , topN )
79+ internal SqlContainsTable ( DataTable dataTable , SqlExpression freeText , ICollection < string > columnNames , SqlExpression topN )
80+ : this ( dataTable , freeText , columnNames , ArrayUtils < string > . EmptyArray , topN )
8181 {
8282 }
8383
84- internal SqlContainsTable ( DataTable dataTable , SqlExpression searchCondition , IEnumerable < string > columnNames , ICollection < string > targetColumnNames , SqlExpression topNByRank )
84+ internal SqlContainsTable ( DataTable dataTable , SqlExpression searchCondition , ICollection < string > columnNames , ICollection < string > targetColumnNames , SqlExpression topNByRank )
8585 : base ( string . Empty )
8686 {
8787 TargetTable = SqlDml . TableRef ( dataTable ) ;
8888 SearchCondition = searchCondition ;
8989 TopNByRank = topNByRank ;
90- var targetColumns = new List < SqlTableColumn > ( ) ;
91- if ( targetColumnNames . Count == 0 )
92- targetColumns . Add ( Asterisk ) ;
93- else
94- targetColumns = targetColumnNames . Select ( cn => SqlDml . TableColumn ( this , cn ) ) . ToList ( ) ;
95- TargetColumns = new SqlTableColumnCollection ( targetColumns ) ;
96-
97- columns = new SqlTableColumnCollection ( columnNames . Select ( column=> SqlDml . TableColumn ( this , column ) ) . ToList ( ) ) ;
90+ var targetColumnCount = targetColumnNames . Count ;
91+ if ( targetColumnCount == 0 ) {
92+ TargetColumns = new SqlTableColumnCollection ( new List < SqlTableColumn > ( 1 ) { Asterisk } ) ;
93+ }
94+ else {
95+ var targetColumns = new List < SqlTableColumn > ( targetColumnCount ) ;
96+ targetColumns . AddRange ( targetColumnNames . Select ( columnName => SqlDml . TableColumn ( this , columnName ) ) ) ;
97+ TargetColumns = new SqlTableColumnCollection ( targetColumns ) ;
98+ }
99+
100+ var columnList = new List < SqlTableColumn > ( columnNames . Count ) ;
101+ columnList . AddRange ( columnNames . Select ( columnName => SqlDml . TableColumn ( this , columnName ) ) ) ;
102+ columns = new SqlTableColumnCollection ( columnList ) ;
98103 }
99104 }
100105}
0 commit comments