ASP.NET MVC - Найдите Полный путь к папке App_Data от Контроллера

ВАЖНОЕ ПРИМЕЧАНИЕ: Вы имеете к [1 134], сортируют Ваши данные сначала.

<час>

первая часть не добиралась, то, что в конструкции в качестве примера

groups = []
uniquekeys = []
for k, g in groupby(data, keyfunc):
   groups.append(list(g))    # Store group iterator as a list
   uniquekeys.append(k)

k текущий ключ группировки, и g итератор, который можно использовать для итерации по группе, определенной тем ключом группировки. Другими словами, groupby сам итератор возвращает итераторы.

Вот пример этого, с помощью более ясных имен переменной:

from itertools import groupby

things = [("animal", "bear"), ("animal", "duck"), ("plant", "cactus"), ("vehicle", "speed boat"), ("vehicle", "school bus")]

for key, group in groupby(things, lambda x: x[0]):
    for thing in group:
        print "A %s is a %s." % (thing[1], key)
    print " "

Это даст Вам вывод:

перенос А является животным.
утка А является животным.

кактус А является растением.

скоростная моторная лодка А является механизмом.
школьный автобус А является механизмом.

В этом примере, things список кортежей, где первый объект в каждом кортеже является группой, второй объект принадлежит.

groupby() функция берет два аргумента: (1) данные для группировки и (2) функция для группировки его с.

Здесь, lambda x: x[0] говорит groupby() использовать первый объект в каждом кортеже как группирующийся ключ.

В вышеупомянутом for оператор, groupby возвраты три (ключ, итератор группы) пары - однажды для каждого уникального ключа. Можно использовать возвращенный итератор для итерации по каждому отдельному объекту в той группе.

Вот немного отличающийся пример с теми же данными, с помощью понимания списка:

for key, group in groupby(things, lambda x: x[0]):
    listOfThings = " and ".join([thing[1] for thing in group])
    print key + "s:  " + listOfThings + "."

Это даст Вам вывод:

животные: перенос и утка.
заводы: кактус.
механизмы: скоростная моторная лодка и школьный автобус.

277
задан BuddyJoe 12 August 2009 в 10:06
поделиться

2 ответа

ASP.NET MVC1 -> MVC3

string path = HttpContext.Current.Server.MapPath("~/App_Data/somedata.xml");

ASP.NET MVC4

string path = Server.MapPath("~/App_Data/somedata.xml");


Ссылка MSDN:

Метод HttpServerUtility.MapPath

391
ответ дан 23 November 2019 в 02:04
поделиться

Я стараюсь взять в привычку использовать HostingEnvironment вместо Server, поскольку это работает и в контексте WCF-сервисов.

 HostingEnvironment.MapPath(@"~/App_Data/PriceModels.xml");
133
ответ дан 23 November 2019 в 02:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: