Простое обновление к API версии Java 8
public Map<String, List<String>> splitQuery(URL url) {
if (Strings.isNullOrEmpty(url.getQuery())) {
return Collections.emptyMap();
}
return Arrays.stream(url.getQuery().split("&"))
.map(this::splitQueryParameter)
.collect(Collectors.groupingBy(SimpleImmutableEntry::getKey, LinkedHashMap::new, **Collectors**.mapping(Map.Entry::getValue, **Collectors**.toList())));
}
и toList () необходимо использовать с коллекторами, которые не были указаны в верхнем ответе. В противном случае это приведет к ошибке компиляции в IDE
Если Вы ищете библиотеку Memory Mapped для C#, посмотрели на обертка filemap Tomas Restrepo. Это лицензируется под LGPL.
Файлы С отображенной памятью могут использоваться, когда Вы имеете большой объем данных и не хотите нести расходы маршалинга его через границы процесса. Я использовал его для подобной цели. Необходимо быть довольно довольны небезопасными и прикрепленными понятиями памяти в.NET для использования в своих интересах MMFs. , По-видимому , блок кэширования Библиотеки Предприятия содержит код, который переносит базовый API C#. Я видел по крайней мере еще одну реализацию в другом месте.
, Если можно жить со стоимостью маршалинга, это, вероятно, легче и более изящно для использования некоторого решения для дистанционной работы.NET.
Вы могли бы хотеть просто бросить его в Кэш [] объект. Можно установить истечение кэша на основе реального файла. Затем каждый раз, когда Вы изменяете фактический файл, содержание будет пустым для объекта в кэше, и можно перезагрузить его. Это не может быть соответствующим, если Вы имеете дело с большим количеством байтов.
byte[] fileBytes = Cache["fileBytes"];
if (null == fileBytes) {
// reload the file and add it to the cache.
string fileLocation = Server.MapPath("path/to/file.txt");
// Just a same of some bytes.
fileBytes = new byte[10];
Cache.Insert(fileLocation, fileBytes, new System.Web.Caching.CacheDependency(fileLocation));
}
я предполагаю, что у меня нет определенного ответа о рабочих характеристиках кэша и больших объемах данных. http://www.alachisoft.com/ncache/asp-net-cache.html состояния, которые Вы получаете между 2 и 3 концертами пространства кэша, которое должно быть совместно использовано Вашим приложением и кэшем.
Я знаю, что это немного поздно, но фреймворк .NET 4.0 теперь поддерживает файлы с привязкой к памяти из коробки:
http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx