小编Cat*_*oha的帖子

使用lambda表达式而不是foreach是一种好习惯吗?

今天我正在开发一个TextToSpeech应用程序,我遇到了一种情况,我需要检查用户选择的语音是否安装在计算机上.

为此,我可以使用foreach:

bool foundVoice = false;
foreach (var v in installedVoices)
{
    if (v.VoiceInfo.Name.Contains(selectedVoice) && v.VoiceInfo.Culture.ToString() == selectedCulture)
    {
        foundVoice = true;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

lamda表达式:

var foundVoice = installedVoices.FirstOrDefault(v => v.VoiceInfo.Name.Contains(selectedVoice) && v.VoiceInfo.Culture.ToString() == selectedCulture);
Run Code Online (Sandbox Code Playgroud)

installedVoices是来自SpeechSynthesizerReadOnlyCollection <InstalledVoice>.

毫无疑问,lambda表达式看起来比foreach更干净,但哪一种更好用?

根据我的测试,foreach似乎比lambda表达式快.

此外,如果需要对InstalledVoice立即采取行动,将来可以扩展foreach和lambda.

c# linq foreach lambda

6
推荐指数
1
解决办法
652
查看次数

对所有 Axios 请求使用 Auth0 React Hook

我已经按照他们的快速入门教程使用 React 设置了 Auth0。
基本上,我的 React 应用程序围绕着它们的 Context Provider,我可以访问useAuth0我的任何组件中的钩子。

这是我向 API 发出请求的方式:

const TestComponent = () => {
  const { getTokenSilently } = useAuth0();

  const getObjectsFromAPI = async () => {
    const token = await getTokenSilently();
    const axiosConfig = {
      headers: {
        Authorization: "Bearer " + token
      }
    };

    const response = await axios.get(
      "/api/objects/",
      axiosConfig
    );

    // ... do something with the response

  };

  return ... removed code for brevity
};
Run Code Online (Sandbox Code Playgroud)

有没有办法提出请求而不必在每个请求上写tokenaxiosConfig

我知道我可以使用配置初始化一个新的 …

reactjs auth0 axios

3
推荐指数
1
解决办法
1542
查看次数

关闭应用程序时,将删除数据库中的所有数据

创建本地数据库文件然后将应用程序连接到它的正确方法是什么?即使您更改项目文件夹的位置,我希望它能够工作.

知道我做的是:项目 - >添加新项目 - >基于服务的数据库,我创建一个,然后我去数据 - >添加新数据源,我添加创建的数据库,我得到连接字符串.

好的,一切都很好,我可以按照我的意愿连接到它但是当我关闭应用程序时(不总是),我的所有数据都会从数据库中删除.

例如,这段代码:

SqlConnection c = new SqlConnection(@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True");           
c.Open();
SqlCommand cmd;
cmd = new SqlCommand("CREATE TABLE Persons (id int primary key, nume char(20), age int)");
cmd.ExecuteNonQuery();
cmd = new SqlCommand("INSERT INTO Persons VALUES (@id, @name, @age)", c);
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@name", "Catalin");
cmd.Parameters.AddWithValue("@age", 20);
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

我第一次运行它来创建表并向其添加一个项目,然后,如果我第二次运行它而没有使用sqlcommand创建表人员,它告诉我没有Persons对象,但是如果我运行第二次使用相同代码的项目,它告诉我已经有一个Persons对象...

我正在使用Visual C#Express Edition 2010.

c# database sql-server-express

2
推荐指数
2
解决办法
2700
查看次数

如何使用 PIL 从图像中剪切自定义形状?

我想剪一张照片,让我们说:
在此处输入图片说明

使用另一张具有透明背景的图片,如下所示:
在此处输入图片说明

并得到以下结果:
在此处输入图片说明

如何使用 Python PIL/Pillow 实现这一点?或任何其他库,但必须使用 Python。

python python-imaging-library

2
推荐指数
1
解决办法
666
查看次数