in Elastic.SemanticKernel.Connectors.Elasticsearch/Internal/Helpers/VectorStoreRecordPropertyVerification.cs [156:167]
public static Type GetCollectionElementType(Type collectionType)
{
return collectionType switch
{
IEnumerable => typeof(object),
var enumerableType when enumerableType.IsGenericType && enumerableType.GetGenericTypeDefinition() == typeof(IEnumerable<>) => enumerableType.GetGenericArguments()[0],
var arrayType when arrayType.IsArray => arrayType.GetElementType()!,
var interfaceType when interfaceType.GetInterfaces().FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IEnumerable<>)) is Type enumerableInterface =>
enumerableInterface.GetGenericArguments()[0],
_ => collectionType
};
}