小编Oli*_*bes的帖子

数据库属性可以是主键还是外键?

我有2张桌子,UserEmployee.每个用户都被赋予一个User_ID,这是User表中的主键和表中的外键Employee.Employee表中的该属性也可以是主键吗?

database foreign-keys primary-key relational-database

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

列表和foreach

我似乎有一个非常奇怪的问题,我真的不知道发生了什么.这是我正在尝试调试的源代码

StorageFile file = await roamingFolder.GetFileAsync(filename);
string text = await FileIO.ReadTextAsync(file);

string[] shows = text.Split(new[] { ":?;" }, StringSplitOptions.None);
List<show> showslist = new List<show>();

foreach (string splitshow in shows)
{
    string[] show1 = splitshow.Split(new[] { ",?;" }, StringSplitOptions.None);
    episode = show1[0];
    name = show1[1];

    showslist.Add(new show { name = name, episode = episode });
}

Output.ItemsSource = showslist;
Run Code Online (Sandbox Code Playgroud)

奇怪的是,只有当我放在Output.ItemsSource = showslist;foreach循环内部时才会显示列表,但是当它在外面时却不会显示,我真的不明白它为什么不是.我的意思是列表的元素已经添加到它没有它们?

已经尝试了许多不同的方法,其中大多数方法即使他们确实显示列表数据有许多不同的问题,太复杂,无法解决.

无论如何,感谢任何提示或帮助,谢谢.

c# wpf foreach listview

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

如果类具有错误的继承,如何抛出异常

我有一个asp.net webforms应用程序.每个aspx.cs类都需要从继承自System.Web.UI.Page的BasePage.cs继承.

所需页面继承:

class MyChildPage : BasePage :  System.Web.UI.Page
Run Code Online (Sandbox Code Playgroud)

如何在创建新子页面时强制它从BasePage.cs而不是System.Web.UI.Page继承?

潜在解决方案

  • 有没有办法更改aspx.cs页面的默认创建?
  • 如果它继承自System.Web.UI.Page,有没有办法抛出编译器错误?

注意:这些子页面共享相同的母版页,这可能会有所帮助.

c# asp.net master-pages compiler-errors

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

LINQ:如何使用 IQueryable() 选择特定列

我只需要从 Hospital 表中选择两列,HospitalId 和 Name。我尝试了下面的代码,它从 Hospital 表中选择了所有列,这导致了性能下降。请帮我从 Hospital 表中只选择两列

public HttpResponseMessage GetAvailableHospitalsByAjax(System.Guid? DirectorateOfHealthID = null, System.Guid? UnitTypeID = null, string DeviceTypeIDs = null)
{
    Context db = new Context();
    var query = db.Hospitals.AsQueryable();
    if (UnitTypeID != null)
    {
        query = query.Where(j => j.HospitalDepartments.Any(www => www.Units.Any(u => u.UnitTypeID == UnitTypeID)));
    }

    if (DirectorateOfHealthID != null)
    {
        query = query.Where(h => h.DirectorateHealthID == DirectorateOfHealthID);
    }


    query = query.Where(j => j.HospitalDepartments.Any(u => u.Units.Any(d => d.Devices.Any(s => s.Status == Enums.DeviceStatus.Free)))
    && j.HospitalDepartments.Any(hd => hd.Units.Any(u …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server entity-framework

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

automapper的通用扩展方法

public abstract class Entity : IEntity
{
    [Key]
    public virtual int Id { get; set; }
}

public class City:Entity
{
    public string Code { get; set; }
}

public class BaseViewModel:IBaseViewModel
{
    public int Id { get; set; }
}

public class CityModel:BaseViewModel
{
    public string Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的域和视图类...

用于映射扩展

public static TModel ToModel<TModel,TEntity>(this TEntity entity)
    where TModel:IBaseViewModel where TEntity:IEntity
{
    return Mapper.Map<TEntity, TModel>(entity);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用如下

City city = GetCity(Id);
CityModel model = f.ToModel<CityModel, …
Run Code Online (Sandbox Code Playgroud)

.net c# generics extension-methods automapper

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

浏览字典<string,int> c#

浏览字典的更好方法是什么?当我有IDictionary时,我曾经使用下面的代码:

假设我有IDictionary命名 freq

IEnumerator enums = freq.GetEnumerator();
while (enums.MoveNext())
{
    string word = (string)enums.Key;
    int val = (int)enums.Value;
    .......... and so on

}
Run Code Online (Sandbox Code Playgroud)

但现在,我想用字典做同样的事情

c# c#-4.0

5
推荐指数
3
解决办法
6135
查看次数

从互联网上获取汇率

我想做的是,从互联网上获取汇率.经过长时间的研究,我发现了这个功

protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
        string xmlResult = null;
        string url;
        url = "http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=" + TextBox1.Text + "&ToCurrency=" + TextBox2.Text + "";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader resStream = new StreamReader(response.GetResponseStream());
        XmlDocument doc = new XmlDocument();
        xmlResult = resStream.ReadToEnd();
        doc.LoadXml(xmlResult);
        Label1.Text = "Current Exchange Rate for " + TextBox1.Text.ToUpper() + " ---> " + TextBox2.Text.ToUpper() + " value " + doc.GetElementsByTagName("double").Item(0).InnerText;
        }
        catch(Exception ex)
        {
            Label1.Text="Not a valid Currency or Try …
Run Code Online (Sandbox Code Playgroud)

c# windows visual-studio-2010 visual-studio winforms

5
推荐指数
1
解决办法
1万
查看次数

行过滤器中的多个参数

我试图在textchanged事件下将文本框作为Rowfilter放置!

下面的代码用于GRID以获取相应的Reg_Number Customer_Name在文本框中输入的代码!

wat的令人惊讶的事实是,这段代码直接采用了第二个论证

(即)
((DataTable)radGridView1.DataSource).DefaultView.RowFilter = "Reg_Number like '%" + radTextBoxControl1.Text + "%'";

试图改变线路,但不管我做了什么,它都会忽略第一个并取得第二个

我试图把AND放在一条线上,但是不行,请告诉我frnzz!

private void radTextBoxControl1_TextChanged(object sender, EventArgs e)
{
    try
    {
        ((DataTable)radGridView1.DataSource).DefaultView.RowFilter =
            "Customer_Name like '%" + radTextBoxControl1.Text + "%'";
        ((DataTable)radGridView1.DataSource).DefaultView.RowFilter =
            "Reg_Number like '%" + radTextBoxControl1.Text + "%'";
    }
    catch (Exception) { }
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

5
推荐指数
1
解决办法
8874
查看次数

具有Linq性能优势的Quicksort传递T []与IEnumerable <T>

为了好玩,我用Linq在C#中构建了一个quicksort实现:

public static IEnumerable<T> quicksort<T>(IEnumerable<T> input) where T : IComparable<T>{
    if (input.Count() <= 1) return input;
    var pivot = input.FirstOrDefault();
    var lesser = quicksort(input.Skip(1).Where(i => i.CompareTo(pivot) <= 0));
    var greater = quicksort(input.Where(i => i.CompareTo(pivot) > 0));
    return lesser.Append(pivot).Concat(greater);
}
Run Code Online (Sandbox Code Playgroud)

它在大约13秒内对10000个随机整数进行排序.

将其更改为使用int []而不是List会使性能提高约700倍!对相同的10000个随机整数进行排序只需要21ms.

public static T[] quicksortArray<T>(T[] input) where T : IComparable<T>{
    if (input.Count() <= 1) return input;
    var pivot = input.FirstOrDefault();
    var lesser = quicksortArray(input.Skip(1).Where(i => i.CompareTo(pivot) <= 0).ToArray());
    var greater = quicksortArray(input.Where(i => i.CompareTo(pivot) > 0).ToArray());
    return lesser.Append(pivot).Concat(greater).ToArray();
} …
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
1
解决办法
294
查看次数

VB dot NET ...即使该字符串明确包含我要替换的文本,它怎么可能不会变得更短?

一位客户报告了我们的软件“挂起”的问题。我最终设法找到了负责的代码段:

While strShortenedText.IndexOf("  ") > -1 'if there are two contiguous spaces
                                          'anywhere in this string ...
    strShortenedText = strShortenedText.Replace("  ", " ") '... replace each
                                                           'occurrence with a
                                                           'single string ...
End While '... and do this in a loop in order to handle situations with 3 or more
          'contiguous spaces
Run Code Online (Sandbox Code Playgroud)

恐怕我无法在此处包含实际的字符串,因为它包含 GDPR 立法涵盖的数据,但我只是在寻找关于这如何可能进入无限循环的解释?

我发现的是:

  1. strShortenedText.IndexOf(" ")返回大于-1的值,因此该字符串中的某处有两个连续的空格(我确保这些空格都是 0x20 即 char(32))
  2. 因此,如果 strShortenedText" "在任何地方包含(2 个连续空格),并且我将" "(2 个连续空格)替换为" "(一个空格),那么,肯定(??????),strShortenedText之后.Replace的内容会比替换之前短?

相反,我发现 …

vb.net

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