c# - 通过标识符字符串从列表中删除重复元素(C#)
问题描述
我有将元素添加到列表的方法这是代码
public static List<InputDevice> GetAudioInputDevices()
{
var inputs = new List<InputDevice>();
var enumerator = new MMDeviceEnumerator();
var devicesAudio = enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All);
foreach (var device in devicesAudio)
{
inputs.Add(new InputDevice()
{
Name = device.FriendlyName,
Status = device.State.ToString(),
DeviceId = device.ID,
Identifier = device.FriendlyName.Replace(" ", "").ToUpper()
});
}
return inputs;
}
但有时我可以在Identifier
如何在返回时返回没有重复的列表?
解决方案
最好的方法,我喜欢这个
public static List<InputDevice> GetAudioInputDevices()
{
var inputs = new List<InputDevice>();
var enumerator = new MMDeviceEnumerator();
var devicesAudio = enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All);
inputs = devicesAudio.GroupBy(d => d.FriendlyName.Replace(" ", "").ToUpper()).Select(g => g.First())
.Select(d => new InputDevice()
{
Name = d.FriendlyName,
Status = d.State.ToString(),
DeviceId = d.ID,
Identifier = d.FriendlyName.Replace(" ", "").ToUpper()
}).ToList();
return inputs;
}
推荐阅读
- highcharts - Highmaps 混合气泡图和地图线导致地图偏移
- stripe-payments - 应用程序应存储哪些条带支付费用信息?
- python - 创建由其他文件的子类组成的类
- go - 无法使用 delve:pacakge main 不在 GOROOT 中
- matlab - MATLAB求解器给出空向量
- javascript - React 本机应用程序未呈现组件
- c# - How I can access all fields of a http-request in an azure function (parse JSON in C#)?
- python - 有没有一种关于跳过批次的方法会在 pytorch 中引发错误?
- c - switch() 函数中的 getchar() 不起作用
- conditional-formatting - 带范围的条件格式