unsafe private string GetInSql(Data.DBProvider dbProvider, Query.DocumentResultForSort[] result, int begin, int count) { if (begin + count > result.Length) { return(null); } StringBuilder sql = new StringBuilder(); if (dbProvider.DocIdReplaceField == null) { sql.Append("docId in ("); } else { sql.AppendFormat("{0} in (", dbProvider.DocIdReplaceField); } Dictionary <long, int> replaceFieldValueToDocId = null; if (dbProvider.DocIdReplaceField != null) { replaceFieldValueToDocId = new Dictionary <long, int>(); } int i = 0; for (int j = begin; j < begin + count; j++) { Query.DocumentResultForSort docResult = result[j]; int docId = docResult.DocId; if (dbProvider.DocIdReplaceField == null) { if (i++ == 0) { sql.AppendFormat("{0}", docId); } else { sql.AppendFormat(",{0}", docId); } } else { long replaceFieldValue = dbProvider.GetDocIdReplaceFieldValue(docId); if (i++ == 0) { sql.AppendFormat("{0}", replaceFieldValue); } else { sql.AppendFormat(",{0}", replaceFieldValue); } } } sql.Append(")"); return(sql.ToString()); }