ในรหัสของฉันจำเป็นต้องใช้IEnumerable<>
หลายครั้งจึงได้รับข้อผิดพลาด Resharper ของ "เป็นไปได้หลายการนับIEnumerable
"
รหัสตัวอย่าง:
public List<object> Foo(IEnumerable<object> objects)
{
if (objects == null || !objects.Any())
throw new ArgumentException();
var firstObject = objects.First();
var list = DoSomeThing(firstObject);
var secondList = DoSomeThingElse(objects);
list.AddRange(secondList);
return list;
}
- ฉันสามารถเปลี่ยน
objects
พารามิเตอร์ให้เป็นList
แล้วหลีกเลี่ยงการนับหลายที่เป็นไปได้ แต่จากนั้นฉันไม่ได้รับวัตถุสูงสุดที่ฉันสามารถจัดการได้ - สิ่งที่ฉันสามารถทำได้ก็คือการแปลง
IEnumerable
ไปList
ที่จุดเริ่มต้นของวิธีการ:
public List<object> Foo(IEnumerable<object> objects)
{
var objectList = objects.ToList();
// ...
}
แต่นี้เป็นเพียงที่น่าอึดอัดใจ
คุณจะทำอะไรในสถานการณ์นี้