空时如何处理 Mediadevices FriendlyName

How to handle Mediadevices FriendlyName when null

我正在使用 MediaDevice 库,当设备名称与 FriendlyName 匹配时一切正常, 我的问题是当我没有将我的设备插入 PC 或者我在 FriendlyName

中更改了一个简单的字母
var devicess = MediaDevice.GetDevices();
using (var device = devicess.First(d => d.FriendlyName == "MyCellPhone"))
{
    device.Connect();

    // get list of available storages (SD-Card, Internal Flash, ...)
    var objects = device.FunctionalObjects(FunctionalCategory.Storage);
    MediaStorageInfo infoss = GetStorageInfo(objects.First());
    ulong size = infoss.FreeSpaceInBytes;

    device.Disconnect();
}

例如,如果我的 smartphone 被命名为“samsung”,我将“samsam”放在这里

 using (var device = devicess.First(d => d.FriendlyName == "samsam")) (instead of samsung)

应用程序崩溃,如果将其留空或我 运行 没有附加 phone 的代码,也会发生同样的事情。 我尝试了一些 try {} catch{} 但没有结果。 任何人都可以帮助我吗? 谢谢。

使用FirstOrDefault代替First

var device = devicess.FirstOrDefault(d => d.FriendlyName == "MyCellPhone")

如果找不到匹配,这将 return null,而不是抛出异常。