gpt4 book ai didi

c# - 缩短重复代码

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:54 26 4
gpt4 key购买 nike

我问这个问题很愚蠢,但是除了命名约定外,我有两种方法几乎具有相同的代码...我想缩短此方法以减少对冗余代码的使用。
我实际上该如何缩短?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Text.RegularExpressions;

namespace empTRUST
{
class DBDictionary : DBBase
{
public DBDictionary()
: base("Dictionary", "Word")
{
}

public List<DataRow> AngerPercent(string status)
{
List<DataRow> dataList = new List<DataRow>();
var wordPattern = new Regex(@"\w+");
DataRow[] rows = fbTab.Select("Genre = 'Angry'");
foreach (Match match in wordPattern.Matches(status))
foreach (var item in rows)
if (item["Word"].ToString().ToLower() == match.ToString().ToLower())
{
dataList.Add(item);
}

return dataList;
}

public List<DataRow> CaringPercent(string status)
{
List<DataRow> dataList = new List<DataRow>();
var wordPattern = new Regex(@"\w+");
DataRow[] rows = fbTab.Select("Genre = 'Caring'");
foreach (Match match in wordPattern.Matches(status))
foreach (var item in rows)
if (item["Word"].ToString().ToLower() == match.ToString().ToLower())
{
dataList.Add(item);
}

return dataList;
}
}
}

最佳答案

风格是唯一不同的事物,因此只需将其移至方法参数列表即可:

    public List<DataRow> GenrePercent(string status, string genre)
{
List<DataRow> dataList = new List<DataRow>();
var wordPattern = new Regex(@"\w+");
DataRow[] rows = fbTab.Select(String.Format("Genre = '{0}'", genre.Replace("'", "''")));
foreach (Match match in wordPattern.Matches(status))
foreach (var item in rows)
if (item["Word"].ToString().ToLower() == match.ToString().ToLower())
{
dataList.Add(item);
}

return dataList;
}


然后,您可以在调用时传递流派名称:

    GenrePercent("Status1", "Angry");
GenrePercent("Status2", "Caring");

关于c# - 缩短重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17762381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com