Альтернативой подходу методов расширения будет:
public static void SelectFirstInto(this IEnumerable<ContractAction> items, ContractAction target)
{
var source = items.FirstOrDefault();
if(source != null)
{
target.Title = source.Title,
target.Description = source.Description ,
target.DeliveryOrderID = source.DeliveryOrderID,
target.EstimatedValue = source.EstimatedValue,
target.AgreementTypeID = source.AgreementTypeID
}
}
Тогда вы можете сделать:
ContractAction targetAction = new ContractAction();
var item = (from listItem in result.GetSPListItems()
select new ContractAction
{
Title = listItem.GetSPFieldValue("Title"),
Description = listItem.GetSPFieldValue("Description"),
DeliveryOrderID = SPHelper.GetFirstLookupID(listItem.GetSPFieldValue("Delivery Order")),
EstimatedValue = ((listItem.GetSPFieldValue("Estimated Value") as double?) ?? 0),
AgreementTypeID = SPHelper.GetFirstLookupID(listItem.GetSPFieldValue("Contract Type")),
}).SelectFirstInto(targetAction);
Имейте в виду, что если список пуст, то целевой объектостается неизменным.Это может быть то, что вы захотите соответственно обработать.