나는 다음과 같은 한 확장 기능 :수익을 사용하여 빈 콜렉션을 반환하려면 어떻게해야합니까?
var readFields = dsReader.Select(r =>
{
var serviceResponse = myService.Decrypt<DateTime>(r.GetString(DATE_VALUE), r.GetInt32(DEK_ID));
if (serviceResponse.IsSuccessful)
{
return new DataField<DateFieldValue>
{
FieldValue = new DateFieldValue { Data = serviceResponse.Value }
};
}
return null;
});
if (!readFields.IsCollectionNullOrEmpty())
returnFinalFields.AddRange(readFields);
여기에 직면 serviceResponse.IsSuccessful이 거짓 인 경우에도 readFields의이 포함 된 비어 있지 않은 것입니다 오전 문제 :
public static IEnumerable<T> Select<T>(this IDataReader reader,
Func<IDataReader, T> selector)
{
while (reader.Read())
{
yield return selector(reader);
}
}
처럼 사용되는 null 인 항목을 가지는 열거 형 여기서 빈 콜렉션을 반환 할 수있는 방법이 있습니까?
'Enumerable.Empty(); ' –
참조)합니다 (reader.Read 전에 확인하는 방법이 있나요 데이터가 있으면 잠시 들어가기 전에 null을 반환할까요? – Neil
@Neil은 예상되는'IEnumerable '에서 null을 반환하는 것은 거의 항상 반대 패턴입니다. –