Я пытаюсь присвоить значение своему предмету, но мне нужно поставить условие, потому что идентификатор меняется в зависимости от языка.
Expression<Func<ListItem, object>>[] fieldsToRetreive
= new Expression<Func<ListItem, object>>[] {
item => item["A"], //
item => item["B"], //
item => item["C"], //
item => item["D"], //
item => item["E"], //
item => item["F"], //
item => item["G"], //
item => item["H"],
},
Я пытаюсь сделать что-то похожее на это:
item => if(item["I"] != null){item=>item["I"]}else{item=>item["J"])
ОБНОВЛЕНИЕ: Вот еще код функции
private List<ListItem> FindItemsWithContentType(List list, string contentTypeId, DateTime? notOlderThan = null)
{
DateTime searchDate = new DateTime(1990, 01, 01);
if (notOlderThan.HasValue && notOlderThan.Value.Date == DateTime.Today)
searchDate = notOlderThan.Value.AddDays(-1); // Sharepoint does not take time into account, so we roll back to yesterday if today
else
notOlderThan = searchDate;
string date = DateTime.SpecifyKind(searchDate, DateTimeKind.Utc).ToString("yyyy-MM-ddTHH:mm:ssZ"); // could also be like: "<Today OffsetDays=\"-7\" />"
CamlQuery query = new CamlQuery()
{
ViewXml = string.Format("<View><Query><Where><And><BeginsWith><FieldRef Name='ContentTypeId' /><Value Type='ContentTypeId'>{0}</Value></BeginsWith><Gt><FieldRef Name='Modified' /><Value Type='DateTime'>{1}</Value></Gt></And></Where></Query></View>", contentTypeId, date)
};
ListItemCollection items = list.GetItems(query);
Expression<Func<ListItem, object>>[] fieldsToRetreive = new Expression<Func<ListItem, object>>[] {
item => item["A"], item => item["B"], item => item["C"], item => item["D"], item => item["E"], item => item["F"], item => item["G"], item => item["H"], item => item["I"] ?? item["J"]
};
// Making sure we load the content of the item fields
this.AppOnlyContext.Load(items, i => i.Include(fieldsToRetreive));
this.AppOnlyContext.ExecuteQuery();