Как я понимаю, вы хотите запросить все используемые значения?
Если это так, вам придется запрашивать элементы, в которых фактический город не равен нулю, запрос будет выглядеть примерно так:
<Where><IsNotNull><FieldRef Name='Actual City'/></IsNotNull></Where>
Тогда для каждого запрашиваемого элемента вы бы
List<SPFieldLookupValue> result = new List<SPFieldLookupValue>(returnedItemCount * 5);
foreach (SPListItem item in queriedItems) {
object lookup = item["Actual City"];
SPFieldLookupValueCollection lookupValues = new SPFIeldLookupValueCollection(
(lookup != null) ? lookup.ToString() : ""
);
foreach (SPFieldLookupValue lookupValue in lookupValues) {
if (!result.Contains(lookupValue)) {
result.Add(lookupValue);
}
}
}
Или вы можете использовать HashTable, где LookupId будет строкой, а LookupValue будет int id, а затем проверить, должно ли HashTable.ContainsKey(lookupId)
... быть быстрее, чтобы найти целое число в хеш-таблице, а не строку в списке, но интенсивная часть вероятно, запросить все элементы, где это поле содержит какое-то значение, а затем цикл ...