-5

ID に一致するリストからアイテムを削除する必要があります。

リストは次のとおりです。

IList<FeatureDto> featuresDto

featureDto は

public class FeatureDto
{
    // Primary properties
    public int Id { get; set; }
    public string Name { get; set; }
}

受け取る Id の形式は次のとおりです。

selectedFeatureIds = "4,5,6"

IList<FeatureDto> featuresDto文字列 selectedFeatureIds の IDから削除する必要があります。

4

5 に答える 5

3
int[] toRemove = selectedFeatureIds.Split(',').Select(s => int.Parse(s)).ToArray();
featuresDto.RemoveAll(f => toRemove.Contains(f.Id));
于 2013-06-06T11:58:40.247 に答える
1

これはそれを置く1つの方法です:

featuresDto
    .Select((i, index) => 
        selectedFeatureIds.Split(',').Contains(i.Id.ToString()) ? index : -1)
    .Where(i => i >= 0)
    .OrderByDescending(i=>i)
    .ToList()
    .ForEach(i => featuresDto.RemoveAt(i));
于 2013-06-06T12:05:45.430 に答える
1
var ids = selectedFeatureIds.Split(',').Select(id => int.Parse(id)).ToList();
featuresDto.RemoveAll(feature => ids.Any(id => id == feature.Id));
于 2013-06-06T11:59:33.610 に答える
0

まず、入り口の文字列を配列に分割します。

var ids = selectedFeatureIds.Split(',');

その後、それらをループしてリストから削除します

foreach(var id in inds)
{
   featuresDto.Remove().Where(x => x.Id == Int32.Parse(id));
}
于 2013-06-06T11:58:42.090 に答える